Walkthrough: Adding Validation to Entity Classes
Ověření dat je proces ověření, že hodnoty zadané do datové objekty v souladu s omezení v objektu schématu kromě pravidel stanovených pro vaši aplikaci. Ověření dat, ještě před odesláním aktualizace do databáze je vhodné, která snižuje počet chyb a potenciální počet výměny zpráv mezi aplikací a databází.
Object Relational Designer (O/R Designer) Poskytuje částečné metody, které uživatelům umožňují rozšířit designer generovaný kód, který se spouští v průběhu vloží, aktualizace a odstraní dokončení entit a také během a po provedení změn jednotlivých sloupců.
Tento průvodce obsahuje podrobné pokyny pro přidání ověřování k LINQ to SQL [LINQ to SQL] entity třídy a rozšiřuje Walkthrough: Creating LINQ to SQL Classes (O/R Designer) tématu.
V tomto návodu se dozvíte, jak lze provádět následující úlohy:
Ověření změny přidejte do data v určitého sloupce.
Přidání ověřování aktualizací k dokončení entity.
Požadavky
K dokončení tohoto postupu, budete potřebovat:
Projekt vytvořený v Walkthrough: Creating LINQ to SQL Classes (O/R Designer).
Přístup k ukázkové databázi Northwind. Další informace naleznete v tématu Postupy: Instalace ukázkových databází.
Poznámka
Váš počítač může v následujících pokynech zobrazovat odlišné názvy nebo umístění některých prvků uživatelského rozhraní sady Visual Studio. Tyto prvky jsou určeny edicí sady Visual Studio a použitým nastavením. Další informace najdete v tématu Customizing Development Settings in Visual Studio.
Otevření řešení ORDesignerWalkthrough
Chcete-li otevřít řešení ORDesignerWalkthrough
Na soubor nabídce přejděte na Open, klikněte na tlačítko projekt/řešenía přejděte do umístění souboru ORDesignerWalkthrough.sln.
Poznámka
Soubor ORDesignerWalkthrough.sln je vytvořen v Walkthrough: Creating LINQ to SQL Classes (O/R Designer) tématu a je předpokladem pro dokončení tohoto průvodce.Dokončení Walkthrough: Creating LINQ to SQL Classes (O/R Designer) tématu, když jste dokončili, pokud jste to ještě neudělali uložili řešení.
Přidání ověřování pro změny s hodnotou v určitého sloupce
V této části návodu přidáte ověřovací logiky ke sloupci požadované datum objednávky. Přidáte kód, který má-li ověřit, zda je požadované datum dřívější než aktuální den. Vzhledem k tomu, že ověření se provádí v definici skutečný třídy (místo v uživatelském rozhraní) je vyvolána výjimka, pokud se ověření nezdaří hodnotu.
Ověření dat při změně hodnoty sloupce
Otevřít Northwind.dbml v souboru O/R Designer. (Klikněte dvakrát Northwind.dbml souborů v Průzkumníka řešení.)
Vzhledem k tomu, že přidáte ověření požadované datum objednávky, klikněte pravým tlačítkem na třídu pořadí v návrháři a klikněte na tlačítko zobrazení kódu.
Editor kódu otevře dílčí třídu pro pořadí.
Přesuňte kurzor ve třídě částečné pořadí.
Pro projekty jazyka Visual Basic:
Rozbalte položku název metody seznamu (pole se seznamem oznamující (deklarace)).
Klikněte na tlačítko OnRequiredDateChanging.
OnRequiredDateChanging Metody je přidán do třídy částečné pořadí.
Přidejte následující kód v rámci OnRequiredDataChanging metoda zajistit, aby hodnota zadaná pro požadované datum není starší než aktuální datum:
If value.HasValue Then If value < Today Then Throw New Exception("Required Date cannot be in the past") End If End If
Pro projekty jazyka C#:
Přidejte následující kód na třídu částečné pořadí zajistit, že hodnota zadaná požadované datum není dřívější než aktuální datum:
partial void OnRequiredDateChanging(System.DateTime? value) { if (value < System.DateTime.Today) { throw new System.Exception("Required Date cannot be in the past"); } }
Testování aplikace
Testování ověřovací logiky vyžaduje spuštění aplikace a zadání hodnoty, které způsobí selhání ověření.
Testování aplikace
Stiskněte klávesu F5.
V mřížce, který zobrazuje objednávky, změňte požadované datum objednávky datum než aktuální datum a orientovat mimo záznam potvrďte změnu.
Nová hodnota způsobí selhání ověření a je vyvolána výjimka podle očekávání.
Zavřete formulář. (Zastavit ladění).
Chyba ověření v ovládacím prvku DataGridView zpracování
Testování aplikace za následek chybovou zprávu z DataGridView, která nastaví vývojářům zpracovávat DataError události. Následující postup ukazuje způsob zpracování této události.
Ke zpracování chyby ověření v ovládacím prvku DataGridView
Otevřete Form1 v editoru kódu.
Vyberte OrdersDataGridView.
Vytvoření obslužné rutiny událostí DataError události.
Přidejte kód k zobrazení chyby. Obslužná rutina události vypadá následovně:
Private Sub OrdersDataGridView_DataError(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewDataErrorEventArgs) Handles OrdersDataGridView.DataError MessageBox.Show(e.Exception.Message) End Sub
private void dataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs e) { MessageBox.Show(e.Exception.Message); }
Přidání ověřování pro aktualizace na třídu Entity
Kromě kontrole hodnoty během změny, můžete ověřit data při pokusu o aktualizaci třídu úplné entity. Ověření při pokusu o aktualizaci umožňuje porovnání hodnot ve více sloupcích, pokud to vyžadují obchodní pravidla. Například následující postup ukazuje, jak k ověření, že společnost správné dodání se použije, pokud Přepravné je menší než stanoveného limitu.
Chcete-li ověřit data během aktualizace na třídu entity
Otevřít Northwind.dbml v souboru O/R Designer. (Klikněte dvakrát Northwind.dbml souborů v Průzkumníka řešení.)
Vzhledem k tomu, že se přidání ověřování k aktualizaci dokončení pořadí třídy částečné metody, které je nutné přístup jsou umístěny v generované DataContext třídy (NorthwindDataContext). Klepněte pravým tlačítkem myši na prázdné místo v Návrháři relací objektů a klikněte na tlačítko zobrazení kódu.
Editor kódu otevře v dílčí třídě NorthwindDataContext.
Umístěte ukazatel v dílčí třídě NorthwindDataset.
Pro projekty jazyka Visual Basic:
Rozbalte položku název metody seznamu (pole se seznamem oznamující (deklarace)).
Klikněte na tlačítko UpdateOrder.
UpdateOrder Metody je přidán do třídy částečné NorthwindDataContext.
Federální dodávky není poskytování, pokud zboží hodnota je menší než 10. Proto přidejte následující kód v metodě UpdateOrder zajistit, aby zadaná hodnota přeprava není federální dodávky -li zboží hodnota je menší než 10:
If (instance.ShipVia = 3) And (instance.Freight < 10) Then Dim ErrorMessage As String = "Federal Shipping " & _ "does not deliver for less than 10. " & _ "You must use a different shipper." Throw New Exception(ErrorMessage) End If
Pro projekty jazyka C#:
Přidejte následující kód do částečné třídy NorthwindDataContext zajistit, aby zadaná hodnota přeprava není federální dodávky -li zboží hodnota je menší než 10:
partial void UpdateOrder(Order instance) { if ((instance.ShipVia == 3) && (instance.Freight < 10)) { string ErrorMessage = "Federal Shipping " + "does not deliver for less than 10. " + "You must use a different shipper."; throw new System.Exception(ErrorMessage); } }
Testování aplikace
Chcete-li otestovat ověřovací logiky, spuštění aplikace a zadat hodnoty, které způsobí selhání ověření.
Testování aplikace
Stiskněte klávesu F5.
V mřížce, který zobrazuje objednávky, vyhledat záznam, pro kterou přeprava je 3. Změnit zboží k 5 a přejdete mimo záznam potvrďte změnu.
Vzhledem k tomu, že ověření není prováděno, dokud je záznam skutečně odeslal pro aktualizaci, ověření nelze ještě překlopit.
Klikněte na tlačítko Uložit tlačítko ve formuláři.
V tomto okamžiku ověření selže a je vyvolána výjimka.
Zavřete formulář. (Zastavit ladění).
Další kroky
V závislosti na požadavcích aplikace existuje několik kroků, které chcete provést po přidání ověření, který má LINQ to SQL třídy entit. Můžete dokonce vytvářet následující zdokonalení do této aplikace:
- Vytvořte více dotazů LINQ řadit a filtrovat data. Informace naleznete v tématu LINQ to SQL Queries.
Viz také
Úkoly
Walkthrough: Creating LINQ to SQL Classes (O/R Designer)
Koncepty
Další zdroje
Object Relational Designer (O/R Designer)
Novinky ve vývoji datových aplikací v sadě Visual Studio 2012