Přidání ověřování do tříd entit
Poznámka:
Datové sady a související třídy jsou staršími technologiemi rozhraní .NET Framework z počátku 2000, které aplikacím umožňují pracovat s daty v paměti, zatímco aplikace jsou odpojené od databáze. Tyto technologie jsou zvláště užitečné pro aplikace, které uživatelům umožňují upravovat data a uchovávat změny zpět do databáze. I když se datové sady ukázaly jako velmi úspěšná technologie, doporučujeme, aby nové aplikace .NET používaly Entity Framework Core. Entity Framework poskytuje přirozenější způsob práce s tabulkovými daty jako objektovými modely a má jednodušší programovací rozhraní.
Ověřování tříd entit je proces potvrzení, že hodnoty zadané do datových objektů splňují omezení ve schématu objektu a také pravidla vytvořená pro aplikaci. Ověření dat před odesláním aktualizací do podkladové databáze je dobrým postupem, který snižuje chyby. Snižuje také potenciální počet odezvy mezi aplikací a databází.
Nástroje LINQ to SQL v sadě Visual Studio poskytují částečné metody, které uživatelům umožňují rozšířit kód vygenerovaný návrhářem, který se spouští během vkládání, aktualizací a odstraňování úplných entit a také během a po změně jednotlivých sloupců.
Poznámka:
Toto téma obsahuje základní kroky pro přidání ověřování do tříd entit pomocí Návrháře relací objektů. Vzhledem k tomu, že může být obtížné postupovat podle těchto obecných kroků bez odkazování na konkrétní třídu entity, je k dispozici návod, který používá skutečná data.
Přidání ověření změn hodnoty v určitém sloupci
Tento postup ukazuje, jak ověřit data, když se hodnota ve sloupci změní. Vzhledem k tomu, že se ověření provádí uvnitř definice třídy (místo v uživatelském rozhraní), je vyvolán výjimka, pokud hodnota způsobí selhání ověření. Implementujte zpracování chyb pro kód ve vaší aplikaci, který se pokusí změnit hodnoty sloupců.
Poznámka:
V počítači se můžou zobrazovat různé názvy nebo umístění některých prvků uživatelského rozhraní sady Visual Studio v tomto článku. Možná používáte jinou edici sady Visual Studio nebo jiné nastavení prostředí. Další informace naleznete v tématu Přizpůsobení integrovaného vývojového prostředí (IDE).
Ověření dat během změny hodnoty sloupce
Otevřete nebo vytvořte nový soubor TŘÍD LINQ to SQL (
.dbml
soubor) v Návrháři relací objektů. (Poklikejte na.dbml
soubor v Průzkumník řešení.)V Návrháři relací klikněte pravým tlačítkem myši na třídu, pro kterou chcete přidat ověření, a pak vyberte Zobrazit kód.
Otevře se Editor kódu s částečnou třídou pro vybranou třídu entity.
Umístěte kurzor do částečné třídy.
Pro projekty Jazyka Visual Basic:
Rozbalte seznam Název metody.
Vyhledejte metodu OnCOLUMNNAMEChanging pro sloupec, do kterého chcete přidat ověření.
Metoda
OnCOLUMNNAMEChanging
se přidá do částečné třídy.Přidejte následující kód, abyste nejprve ověřili, že byla zadána hodnota, a pak se ujistěte, že hodnota zadaná pro sloupec je pro vaši aplikaci přijatelná. Argument
value
obsahuje navrženou hodnotu, takže přidejte logiku pro potvrzení, že se jedná o platnou hodnotu:If value.HasValue Then ' Add code to ensure that the value is acceptable. ' If value < 1 Then ' Throw New Exception("Invalid data!") ' End If End If
Pro projekty jazyka C#:
Vzhledem k tomu, že projekty jazyka C# negenerují automaticky obslužné rutiny událostí, můžete pomocí IntelliSense vytvořit částečné metody změny sloupce. Zadejte
partial
mezeru pro přístup k seznamu dostupných částečných metod. Klikněte na metodu změny sloupce, pro který chcete přidat ověření. Následující kód se podobá kódu, který se vygeneruje při výběru částečné metody se změnou sloupce:partial void OnCOLUMNNAMEChanging(COLUMNDATATYPE value) { throw new System.NotImplementedException(); }
Přidání ověření aktualizací do třídy entity
Kromě kontroly hodnot během změn můžete také ověřit data při pokusu o aktualizaci úplné třídy entity. Ověření během pokusu o aktualizaci umožňuje porovnat hodnoty ve více sloupcích, pokud to obchodní pravidla vyžadují. Následující postup ukazuje, jak ověřit, kdy je proveden pokus o aktualizaci úplné třídy entity.
Poznámka:
Ověřovací kód pro aktualizace dokončených tříd entit se provádí v částečné DataContext třídě (nikoli v částečné třídě konkrétní třídy entity).
Ověření dat během aktualizace třídy entity
Otevřete nebo vytvořte nový soubor TŘÍD LINQ to SQL (
.dbml
soubor) v Návrháři relací objektů. (Poklikejte na.dbml
soubor v Průzkumník řešení.)Klikněte pravým tlačítkem myši na prázdnou oblast v Návrháři relací objektů a klikněte na Zobrazit kód.
Otevře se Editor kódu s částečnou třídou pro
DataContext
.Umístěte kurzor do částečné třídy pro
DataContext
.Pro projekty Jazyka Visual Basic:
Rozbalte seznam Název metody.
Klepněte na tlačítko UpdateENTITYCLASSNAME.
Metoda
UpdateENTITYCLASSNAME
se přidá do částečné třídy.Přístup k hodnotám jednotlivých sloupců pomocí argumentu
instance
, jak je znázorněno v následujícím kódu:If (instance.COLUMNNAME = x) And (instance.COLUMNNAME = y) Then Dim ErrorMessage As String = "Invalid data!" Throw New Exception(ErrorMessage) End If
Pro projekty jazyka C#:
Vzhledem k tomu, že projekty C# negenerují automaticky obslužné rutiny událostí, můžete k vytvoření částečné
UpdateCLASSNAME
metody použít IntelliSense. Zadejtepartial
mezeru pro přístup k seznamu dostupných částečných metod. Klikněte na metodu aktualizace pro třídu, pro kterou chcete přidat ověření. Následující kód se podobá kódu, který se vygeneruje při výběruUpdateCLASSNAME
částečné metody:partial void UpdateCLASSNAME(CLASSNAME instance) { if ((instance.COLUMNNAME == x) && (instance.COLUMNNAME = y)) { string ErrorMessage = "Invalid data!"; throw new System.Exception(ErrorMessage); } }