Sdílet prostřednictvím


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

  1. Otevřete nebo vytvořte nový soubor TŘÍD LINQ to SQL (.dbmlsoubor) v Návrháři relací objektů. (Poklikejte na .dbml soubor v Průzkumník řešení.)

  2. 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.

  3. Umístěte kurzor do částečné třídy.

  4. Pro projekty Jazyka Visual Basic:

    1. Rozbalte seznam Název metody.

    2. Vyhledejte metodu OnCOLUMNNAMEChanging pro sloupec, do kterého chcete přidat ověření.

    3. Metoda OnCOLUMNNAMEChanging se přidá do částečné třídy.

    4. 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

  1. Otevřete nebo vytvořte nový soubor TŘÍD LINQ to SQL (.dbmlsoubor) v Návrháři relací objektů. (Poklikejte na .dbml soubor v Průzkumník řešení.)

  2. 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.

  3. Umístěte kurzor do částečné třídy pro DataContext.

  4. Pro projekty Jazyka Visual Basic:

    1. Rozbalte seznam Název metody.

    2. Klepněte na tlačítko UpdateENTITYCLASSNAME.

    3. Metoda UpdateENTITYCLASSNAME se přidá do částečné třídy.

    4. 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. Zadejte partial 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ěru UpdateCLASSNAME částečné metody:

    partial void UpdateCLASSNAME(CLASSNAME instance)
    {
        if ((instance.COLUMNNAME == x) && (instance.COLUMNNAME = y))
        {
            string ErrorMessage = "Invalid data!";
            throw new System.Exception(ErrorMessage);
        }
    }