Sdílet prostřednictvím


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:

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

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

  1. Otevřít Northwind.dbml v souboru O/R Designer. (Klikněte dvakrát Northwind.dbml souborů v Průzkumníka řešení.)

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

  3. Přesuňte kurzor ve třídě částečné pořadí.

  4. Pro projekty jazyka Visual Basic:

    1. Rozbalte položku název metody seznamu (pole se seznamem oznamující (deklarace)).

    2. Klikněte na tlačítko OnRequiredDateChanging.

    3. OnRequiredDateChanging Metody je přidán do třídy částečné pořadí.

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

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

  1. Stiskněte klávesu F5.

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

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

  1. Otevřete Form1 v editoru kódu.

  2. Vyberte OrdersDataGridView.

  3. Vytvoření obslužné rutiny událostí DataError události.

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

  1. Otevřít Northwind.dbml v souboru O/R Designer. (Klikněte dvakrát Northwind.dbml souborů v Průzkumníka řešení.)

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

  3. Umístěte ukazatel v dílčí třídě NorthwindDataset.

  4. Pro projekty jazyka Visual Basic:

    1. Rozbalte položku název metody seznamu (pole se seznamem oznamující (deklarace)).

    2. Klikněte na tlačítko UpdateOrder.

    3. UpdateOrder Metody je přidán do třídy částečné NorthwindDataContext.

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

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

  1. Stiskněte klávesu F5.

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

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

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

LINQ to SQL Queries

Další zdroje

Object Relational Designer (O/R Designer)

LINQ to SQL [LINQ to SQL]

Novinky ve vývoji datových aplikací v sadě Visual Studio 2012

LINQ to SQL Walkthroughs