Sdílet prostřednictvím


Návod: Vytvoření tříd LINQ to SQL pomocí dědičnosti s jednou tabulkou (O/R Designer)

Nástroje LINQ to SQL v sadě Visual Studio podporují dědičnost s jednou tabulkou, protože se obvykle implementuje v relačních systémech. Tento názorný postup se rozšiřuje o obecné kroky uvedené v tématu Postupy: Konfigurace dědičnosti pomocí tématu Návrhář relací objektů a poskytuje některá skutečná data, která předvádějí použití dědičnosti v Návrháři relací objektů.

Během tohoto názorného postupu provedete následující úlohy:

  • Vytvořte tabulku databáze a přidejte do ní data.

  • Vytvořte aplikaci Windows Forms.

  • Přidejte do projektu soubor LINQ to SQL.

  • Vytvořte nové třídy entit.

  • Nakonfigurujte třídy entit tak, aby používaly dědičnost.

  • Vytvořte dotaz k zděděné třídě.

  • Zobrazení dat ve formuláři Windows.

Vytvořte tabulku, ze které se má dědit

Pokud chcete zjistit, jak dědičnost funguje, vytvoříte malou Person tabulku, použijete ji jako základní třídu a pak vytvoříte Employee objekt, který z něj dědí.

Vytvoření základní tabulky pro předvedení dědičnosti

  1. V Průzkumníku serveru nebo Průzkumníku databáze klikněte pravým tlačítkem myši na uzel Tabulky a klikněte na Přidat novou tabulku.

    Poznámka:

    Můžete použít databázi Northwind nebo jakoukoli jinou databázi, do které můžete přidat tabulku.

  2. V Návrháři tabulky přidejte do tabulky následující sloupce:

    Název sloupce Datový typ Povolit hodnoty null
    ID int Nepravda
    Type int Pravdivý
    Jméno nvarchar(200) Nepravda
    Příjmení nvarchar(200) Nepravda
    Manažer int Pravdivý
  3. Nastavte sloupec ID jako primární klíč.

  4. Uložte tabulku a pojmenujte ji Osoba.

Přidání dat do tabulky

Aby bylo možné ověřit, že je dědičnost správně nakonfigurovaná, potřebuje tabulka určitá data pro každou třídu v dědičnosti jedné tabulky.

Přidání dat do tabulky

  1. Otevřete tabulku v zobrazení dat. (Klikněte pravým tlačítkem myši na tabulku Osoba v Průzkumníku serveru nebo Průzkumníku databáze a klikněte na Zobrazit data tabulky.)

  2. Zkopírujte do tabulky následující data. (Můžete ho zkopírovat a vložit do tabulky tak, že v podokně výsledků vyberete celý řádek.)

    ID Type Jméno Příjmení Manažer
    1 1 Anna Wallace null
    2 1 Carlos Grilo null
    3 1 Yael Peled null
    4 2 Gatis Ozolins 1
    5 2 Andreas Hauser 1
    6 2 Tiffany Phuvasate 1
    7 2 Alexey Orekhov 2
    8 2 Michał Poliszkiewicz 2
    9 2 Tai Yee 2
    10 2 Fabricio Noriega 3
    11 2 Mindy Martin 3
    12 2 Ken Kwok 3

Vytvoření nového projektu

Teď, když jste vytvořili tabulku, vytvořte nový projekt, který demonstruje konfiguraci dědičnosti.

Vytvoření nové aplikace Windows Forms

  1. V sadě Visual Studio v nabídce Soubor vyberte Nový>projekt.

  2. V levém podokně rozbalte Visual C# nebo Visual Basic a poté vyberte Windows Desktop.

  3. V prostředním podokně vyberte typ projektu aplikace Windows Forms .

  4. Pojmenujte projekt InheritanceWalkthrough a pak zvolte OK.

    Projekt InheritanceWalkthrough se vytvoří a přidá se do Průzkumníka řešení.

Přidejte do projektu soubor tříd LINQ to SQL

Přidání souboru LINQ to SQL do projektu

  1. V nabídce Projekt klepněte na tlačítko Přidat novou položku.

  2. Klikněte na šablonu LINQ to SQL Classes a pak vyberte Přidat.

    Soubor .dbml se přidá do projektu a Návrhář relací objektů se otevře.

Vytvoření dědičnosti pomocí Návrháře relací objektů

Nakonfigurujte dědičnost přetažením objektu dědičnosti ze sady nástrojů na návrhovou plochu.

Vytvoření dědičnosti

  1. V Průzkumníku serveru nebo Průzkumníku databází přejděte do tabulky Person , kterou jste vytvořili dříve.

  2. Přetáhněte tabulku Person na designovou plochu O/R Designer.

  3. Přetáhněte druhou tabulku Person (Osoba ) do Návrháře relací objektů a změňte jeho jméno na Employee (Zaměstnanec).

  4. Odstraňte vlastnost Správce z objektu Person .

  5. Odstraňte vlastnosti Type, ID, FirstName a LastName z objektu Employee . (Jinými slovy, odstraňte všechny vlastnosti s výjimkou Správce.)

  6. Na kartě Návrhář relačního objektupanelu nástrojů, vytvořte dědičnost mezi objekty Person a Employee. Uděláte to tak, že kliknete na položku Dědičnost v sadě nástrojů a uvolníte tlačítko myši. Dále klikněte na objekt Zaměstnanec a potom na objekt Person v Návrháři relací objektů. Šipka na čáře dědičnosti pak odkazuje na objekt Person .

  7. Klikněte na čáru dědičnosti na návrhové ploše.

  8. Nastavte vlastnost diskriminátoru na Typ.

  9. Nastavte vlastnost diskriminátoru odvozené třídy na hodnotu 2.

  10. Nastavte vlastnost diskriminátoru základní třídy na hodnotu 1.

  11. Nastavte vlastnost Výchozí dědičnost na Osoba.

  12. Zkompilujte projekt.

Dotaz na zděděnou třídu a zobrazení dat ve formuláři

Teď do formuláře přidáte kód, který se dotazuje na konkrétní třídu v objektovém modelu.

Vytvoření dotazu LINQ a zobrazení výsledků ve formuláři

  1. Přetáhněte ListBox na Form1.

  2. Poklikáním na formulář vytvořte obslužnou rutinu Form1_Load události.

  3. Do obslužné rutiny události přidejte následující kód Form1_Load :

    NorthwindDataContext dc = new DataClasses1DataContext();
    var results = from emp in dc.Persons
                  where emp is Employee
                  select emp;
    
    foreach(Employee Emp in results)
    {
        listBox1.Items.Add(Emp.LastName)
    }
    

Testování aplikace

Spusťte aplikaci a ověřte, že záznamy zobrazené v seznamu jsou všichni zaměstnanci (záznamy, které mají hodnotu 2 ve sloupci Typ ).

Otestování aplikace

  1. Stiskněte F5.

  2. Ověřte, že se zobrazí pouze záznamy, které mají hodnotu 2 ve sloupci Typ .

  3. Zavřete formulář. (V nabídce Ladění klepněte na tlačítko Zastavit ladění.)