Sdílet prostřednictvím


Postupy: Ověření dat v aplikaci LightSwitch

Použitím ověřovacích pravidel pro entity nebo tabulky, můžete zajistit, že správně formátovaná data zapsána do zdroje dat pro aplikaci Visual Studio LightSwitch.Ověřovací pravidlo je podmínka nebo omezení, které musí splňovat data v aplikaci.Pokud jeden nebo více pravidel ověření můžete přidat k tabulce nebo entity, pokud uživatel přidá nebo změní data tak, aby se neshoduje se objeví se chyba.Předtím, než je uživatel může zapsat data, je nutno opravit chyby ověření.

Následující obrázek znázorňuje chybovou zprávu ověření.

Chybová zpráva ověření

LightSwitch zahrnuje několik předdefinovaných ověřovacích pravidel.Můžete konfigurovat těchto pravidel a aplikovat na entitu nebo tabulku bez psaní kódu.Kód můžete také definovat vlastní ověřovací pravidla.

Toto téma obsahuje následující oddíly:

  • Použití předdefinované ověřovací pravidla pole

  • Použití vlastní ověřovací pravidla pro pole

  • Použití vlastní ověřovací pravidla Data na obrazovce

  • Použití ověřovacích pravidel, které se spouštějí při uložení dat

odkaz na video Související video ukázku naleznete v tématu proveďte jak I: psát obchodní pravidla pro ověřování polí a počítaných polí v aplikaci LightSwitch?.

Použití předdefinované ověřovací pravidla pole

LightSwitch zahrnuje několik předdefinovaných ověřovacích pravidel, která lze používat bez psaní vlastního kódu.Tato pravidla můžete použít pro jednotlivá pole dat, nebo na jakýkoli druh aktualizace, kterou uživatelé provádět na data na obrazovce.

Chcete-li použít předdefinované ověřovací pravidlo pole

  1. V Průzkumníka řešení, otevřete místní nabídku pro entitu nebo tabulky, na které chcete použít ověřovací pravidla a poté zvolte možnost otevřete.

    Entita nebo tabulky se otevře v Data Designer.

  2. V Data Designer, zvolte pole, které chcete ověřit.

    [!POZNÁMKA]

    U aplikací, které byly aktualizovány na Visual Studio 2012 Update 2, můžete také zvolit, vrstvy, které chcete zajistit pomocí tlačítek na ověření perspektivy panel.

  3. V vlastnosti okna v ověření oddílu, nastavte hodnotu libovolné vlastnosti.

    Informace o vlastnostech ověření naleznete v tématu Referenční dokumentace: Vlastnosti návrháře dat.

Použití vlastní ověřovací pravidla pro pole

Vlastní ověřovací pravidla můžete definovat pomocí psaní kódu, a můžete určit, kdy je LightSwitch vynucuje.Můžete například zadat, že je pravidlo vynuceno okamžitě poté, co uživatel zadá hodnotu v poli.Alternativně můžete určit, že entitu nebo tabulku je vyhodnocován až poté, co všechny její pole obsahovat hodnotu.Tento model dává smysl, když platnost hodnotu v jednom poli závisí na platnou hodnotu do jiného pole ve stejném entity nebo tabulky.

Chcete-li použít vlastní ověřovací pravidlo pole

  1. V Průzkumníka řešení, otevřete místní nabídku pro entitu nebo tabulky, na které chcete použít ověřovací pravidla a poté zvolte možnost otevřete.

    Entita nebo tabulky se otevře v Data Designer.

  2. V Data Designer, zvolte pole, které chcete ověřit.

  3. V vlastnosti okna, zvolte vlastní ověření odkazu.

    Editoru kódu otevře a vyvolá metodu, která se nazývá název pole_Validate.

  4. Přidejte ověřovací kód, který název pole_Validate metody.

    Chcete-li vynutit ověřovací pravidlo okamžitě poté, co uživatel poskytuje hodnotu pole, zavolejte AddPropertyError metodu results parametr.

    Následující příklad zobrazí ověřovací zprávu, poté, co uživatel nastaví ShippedDate pole Order entity, která má datum, je vyšší než dnešní den.

    Private Sub ShippedDate_Validate(results As EntityValidationResultsBuilder)
        If Me.ShippedDate > DateTime.Today Then
            results.AddPropertyError _
                ("Shipped date cannot be later than today")
        End If 
    
    End Sub
    
    partial void ShippedDate_Validate(EntityValidationResultsBuilder results)
    {
        if (this.ShippedDate > DateTime.Today)
        {
            results.AddPropertyError("Shipped date cannot be later than today");
        }
    
    }
    

    Všimněte si, že můžete zvýraznit jiné vlastnosti pro ověření.Můžete například napsat kód pro ověření, která se spouští při uživatel změní PSČ zákazníka.Pokud předáte City vlastnost jako parametr, aby AddPropertyError v případě metody LightSwitch se zaměřuje na City pole.Text vaše chyba by mohla vyzvat uživatele k zadejte název města, který se shoduje s novým kódem zip.

    [!POZNÁMKA]

    Ve výchozím nastavení nelze zapsat ke zdroji dat aktualizace i dokud jsou v souladu s ověřovacích pravidel.Pokud chcete, aby mohli uživatelé potvrzení unevaluated aktualizace, použijte AddPropertyResult metoda místo AddPropertyError metody.Pro druhý parametr AddPropertyResult metody, předejte buď ValidationSeverity.Informational nebo ValidationSeverity.Warning.

    Chcete-li vynutit ověřovací pravidlo na entitu nebo v tabulce, například když uživatel změní hodnotu v poli, které závisí na platnou hodnotu do jiného pole, zavolejte AddEntityError metodu results parametr.Následující příklad porovnává hodnotu RequiredDate pole na hodnotu vlastnosti OrderDate pole.Pokud je pořadí datum pozdější než je třeba zadat datum, tento kód zobrazí chybovou zprávu ověření.

    Private Sub RequiredDate_Validate(results As EntityValidationResultsBuilder)
        If Me.RequiredDate < Me.OrderDate Then
            results.AddEntityError _
                ("Required data cannot be earlier than the order date")
        End If 
    
    End Sub
    
    partial void RequiredDate_Validate(EntityValidationResultsBuilder results)
    {
        if (this.RequiredDate < this.OrderDate)
        {
            results.AddEntityError
                ("Required data cannot be earlier than the order date"); 
        }
    
    }
    

Použití vlastní ověřovací pravidla Data na obrazovce

Můžete zadat vlastní ověřovací pravidla, která se vztahují na celou obrazovku přidáním vlastního kódu EntityOrTableName_Validate metodu ve zdrojovém souboru obrazovky.Vlastní kód se spustí upraví uživatele (například přidá nebo odstraní) všechna data na obrazovce.Tato pravidla spustit před uložením data.

Chcete-li použít vlastní ověřovací pravidlo na data na obrazovce

  1. V Průzkumníka řešení, otevřete místní nabídku pro obrazovky, pro kterou chcete zadat ověřovací pravidlo a pak zvolte otevřete.

  2. V horní části obrazovce Designer, zvolte psát kód tlačítko.

    Editoru kódu otevře.

  3. V prohlášení seznam, zvolte EntityOrTableNameProperty _Validate.

    Blok kódu, který se nazývá EntityOrTableNameProperty_Validate se zobrazí v souboru kódu.

  4. Přidat vlastní ověřovací kód do EntityOrTableNameProperty_Validate metody.

    Chcete-li vynutit ověřovacího pravidla, poté, co uživatel přidá, odstraní nebo aktualizuje řádek dat, zavolejte AddScreenError metodu results parametru.

    Následující příklad zabrání odstranění zákazníci, kteří se nacházejí ve Spojených státech amerických.

    Private Sub Customers_Validate _
        (results As Microsoft.LightSwitch.Framework.Client.ScreenValidationResultsBuilder)
        If Me.DataWorkspace.NorthwindData.Details.HasChanges Then 
            Dim changeSet As EntityChangeSet = _
                Me.DataWorkspace.NorthwindData.Details.GetChanges()
    
            Dim entity As IEntityObject
    
            For Each entity In changeSet.DeletedEntities.OfType(Of Customer)()
    
                Dim cust As Customer = CType(entity, Customer)
                If cust.Country = "USA" Then
                    entity.Details.DiscardChanges()
                    results.AddScreenResult("Unable to remove this customer." & _
                        "Cannot delete customers that are located in the USA.", _
                         ValidationSeverity.Informational)
                End If 
    
            Next 
        End If 
    
    End Sub
    
    partial void Customers_Validate(ScreenValidationResultsBuilder results)
    {
        if (this.DataWorkspace.NorthwindData.Details.HasChanges)
        {
            EntityChangeSet changeSet =
            this.DataWorkspace.NorthwindData.Details.GetChanges();
            foreach (IEntityObject entity in changeSet.DeletedEntities.OfType<Customer>())
            {
                Customer cust = (Customer)entity;
                if (cust.Country == "USA")
                {
                    entity.Details.DiscardChanges();
                    results.AddScreenResult("Unable to remove this customer. " +
                    "Cannot delete customers that are located in the USA.",
                    ValidationSeverity.Informational);
                }
            }
        }
    
    }
    

    [!POZNÁMKA]

    Ve výchozím nastavení nelze zapsat ke zdroji dat aktualizace i dokud jsou v souladu s ověřovacích pravidel.Pokud chcete, aby mohli uživatelé potvrzení unevaluated aktualizace, použijte AddScreenResult metoda místo AddScreenError metody.Pro druhý parametr AddScreenResult metody, předejte buď ValidationSeverity.Informational nebo ValidationSeverity.Warning.

Použití ověřovacích pravidel, které se spouštějí při uložení dat

Když uživatel uloží data nebo když váš kód volá metodu můžete použít vlastní ověřovací pravidla SaveChanges metoda zdroje dat.Tento druh ověření spouští výlučně na úrovni serveru.

Chcete-li použít ověřovacích pravidel, které se spouštějí při uložení dat

  1. V Průzkumníka řešení, otevřete místní nabídku pro entitu nebo tabulky, na které chcete použít ověřovací pravidla a poté zvolte možnost otevřete.

    [!POZNÁMKA]

    U aplikací, které byly aktualizovány na Visual Studio 2012 Update 2, na perspektivy pruhu, zvolte Server karty.

  2. Do příkazového řádku Data Designerv psát kód seznam, zvolte EntityOrTableName_Validate.

    Editoru kódu otevře a vyvolá metodu, která se nazývá EntityOrTableName_Validate.

  3. Přidat vlastní ověřovací kód do EntityOrTableName_Validate metody.

    Volání AddEntityError metodu results parametru.

    V následujícím příkladu kontroluje stav platební zákazníka, když uživatel uloží prodejní objednávky.Je-li platební zákazníka nebyl schválen podle finanční oddělení ValidationException je vyvolána.

    Private Sub Orders_Validate _
        (entity As Order, results As  _
         Microsoft.LightSwitch.EntitySetValidationResultsBuilder)
        If Not CustomerCreditApproval(entity.Customer) Then
            results.AddEntityError("Customer Credit has not yet been approved")
        End If 
    
    End Sub 
    Private Function CustomerCreditApproval(ByVal entity As Customer) As Boolean 
        'Some custom code to check the customer’s credit status. 
        Return True 
    
    End Function
    
    partial void Orders_Validate
                (Order entity, EntitySetValidationResultsBuilder results)
            {
                if (!CustomerCreditApproval(entity.Customer))
                {
                    results.AddEntityError
                        ("Customer Credit has not yet been approved");
                }
            }
    
            private bool CustomerCreditApproval(Customer entity)
            {
                //Some custom code to check the customer's credit status. 
                return true;
            }
    

    [!POZNÁMKA]

    Ve výchozím nastavení, když je vyvolána výjimka, zobrazí se chybová zpráva a data zůstávají v aktuální sadu změn.Pokud chcete toto chování změnit, můžete zpracovat ValidationException ve vašem kódu.

Viz také

Úkoly

Postupy: Zpracování datových událostí

Postupy: Definování datových polí v databázi LightSwitch

Koncepty

Provádění úloh souvisejících s daty pomocí kódu

Práce s datově vázanými objekty v kódu

Další zdroje

Přehled ověření dat aplikací LightSwitch

Data: Informace pro vaši aplikaci