Sdílet prostřednictvím


Attribute-Based Mapování

LINQ to SQL mapuje databázi SQL Serveru na objektový model LINQ to SQL buď použitím atributů, nebo pomocí externího souboru mapování. Toto téma popisuje přístup založený na atributech.

Ve své nejzákladnější podobě LINQ to SQL mapuje databázi na DataContext, tabulku na třídu a sloupce a relace na vlastnosti v těchto třídách. Pomocí atributů můžete také mapovat hierarchii dědičnosti v objektového modelu. Další informace naleznete v tématu Postupy: Generování objektového modelu v jazyce Visual Basic nebo C#.

Vývojáři používající Visual Studio obvykle provádějí mapování na základě atributů pomocí Návrháře relačních objektů. Můžete také použít nástroj příkazového řádku SQLMetal nebo můžete atributy ručně zakódovat sami. Další informace naleznete v tématu Postupy: Generování objektového modelu v jazyce Visual Basic nebo C#.

Poznámka:

Mapování můžete také provést pomocí externího souboru XML. Další informace naleznete v tématu Externí mapování.

Následující části popisují mapování na základě atributů podrobněji. Pro více informací viz System.Data.Linq.Mapping jmenný prostor.

Atribut DatabaseAttribute

Tento atribut použijte k určení výchozího názvu databáze, pokud připojení nezadá název. Tento atribut je nepovinný, ale pokud ho použijete, musíte Name použít vlastnost, jak je popsáno v následující tabulce.

Vlastnictví Typ Výchozí Popis
Name Řetězec Viz Name. Používá se s její vlastností Name, určuje název databáze.

Další informace najdete v tématu DatabaseAttribute.

Atribut TableAttribute

Tento atribut použijte k určení třídy jako třídy entity, která je přidružena k databázové tabulce nebo zobrazení. LINQ to SQL zpracovává třídy, které mají tento atribut jako trvalé třídy. Následující tabulka popisuje Name vlastnost.

Vlastnictví Typ Výchozí Popis
Name Řetězec Stejný řetězec jako název třídy Určuje třídu jako třídu entity přidruženou k databázové tabulce.

Další informace najdete v tématu TableAttribute.

ColumnAttribute – atribut

Tento atribut použijte k určení člena třídy entity, který představuje sloupec v tabulce databáze. Tento atribut můžete použít u libovolného pole nebo vlastnosti.

Když LINQ to SQL uloží změny do databáze, pouze členové, které identifikujete jako sloupce, se načtou a zachovají. U členů bez tohoto atributu se předpokládá, že nejsou trvalé a neodesílají se pro vložení nebo aktualizace.

Následující tabulka popisuje vlastnosti tohoto atributu.

Vlastnictví Typ Výchozí Popis
AutoSync Automatická synchronizace Nikdy Dává modulu CLR (Common Language Runtime) pokyn k načtení hodnoty po operaci vložení nebo aktualizace.

Možnosti: Always, Never, OnUpdate, OnInsert.
CanBeNull Boolovská logika true Označuje, že sloupec může obsahovat hodnoty null.
DbType Řetězec Odvozený typ sloupce databáze Používá typy databází a modifikátory k určení typu sloupce databáze.
Expression Řetězec Prázdný Definuje vypočítaný sloupec v databázi.
IsDbGenerated Boolovská logika false Označuje, že sloupec obsahuje hodnoty, které databáze automaticky generuje.
IsDiscriminator Boolovská logika false Označuje, že sloupec obsahuje diskriminující hodnotu pro hierarchii dědičnosti LINQ to SQL.
IsPrimaryKey Boolovská logika false Určuje, že tento člen třídy představuje sloupec, který je nebo je součástí primárních klíčů tabulky.
IsVersion Boolovská logika false Identifikuje typ sloupce člena jako časové razítko databáze nebo číslo verze.
UpdateCheck UpdateCheck Always, pokud IsVersion není true členem Určuje, jak LINQ to SQL přistupuje k detekci optimistických konfliktů souběžnosti.

Další informace najdete v tématu ColumnAttribute.

Poznámka:

Hodnoty vlastností AssociationAttribute a ColumnAttribute Storage rozlišují malá a velká písmena. Ujistěte se například, že hodnoty použité v atributu pro AssociationAttribute.Storage vlastnost odpovídají případu odpovídajících názvů vlastností použitých jinde v kódu. To platí pro všechny programovací jazyky .NET, i ty, které obvykle nerozlišují velká a malá písmena, včetně jazyka Visual Basic. Další informace o vlastnosti Storage naleznete v tématu DataAttribute.Storage.

Atribut AssociationAttribute

Pomocí tohoto atributu můžete určit vlastnost představující přidružení v databázi, například cizí klíč k vztahu primárního klíče. Pro více informací o relacích, viz Jak na to: Mapovat databázové vztahy.

Následující tabulka popisuje vlastnosti tohoto atributu.

Vlastnictví Typ Výchozí Popis
DeleteOnNull Boolovská logika false Když je asociace stanovena na objekt, jehož členy cizího klíče nemohou mít hodnotu null, odstraní objekt, pokud se asociace nastaví na null.
DeleteRule Řetězec Žádné Přidá vlastnost odstranění k přidružení.
IsForeignKey Boolovská logika false Pokud je hodnota true, označí člena jako cizí klíč v asociaci, která představuje vztah databáze.
IsUnique Boolovská logika false Pokud je hodnota true, označuje omezení jedinečnosti cizího klíče.
OtherKey Řetězec ID související třídy Určuje jednoho nebo více členů cílové třídy entity jako klíčové hodnoty na opačné straně vztahu.
ThisKey Řetězec ID obsahující třídy Určuje členy této třídy entity, které představují klíčové hodnoty na této straně přidružení.

Další informace najdete v tématu AssociationAttribute.

Poznámka:

Hodnoty vlastností AssociationAttribute a ColumnAttribute Storage rozlišují malá a velká písmena. Ujistěte se například, že hodnoty použité v atributu pro AssociationAttribute.Storage vlastnost odpovídají případu odpovídajících názvů vlastností použitých jinde v kódu. To platí pro všechny programovací jazyky .NET, i ty, které obvykle nerozlišují velká a malá písmena, včetně jazyka Visual Basic. Další informace o vlastnosti Storage naleznete v tématu DataAttribute.Storage.

Atribut InheritanceMappingAttribute

Tento atribut slouží k mapování hierarchie dědičnosti.

Následující tabulka popisuje vlastnosti tohoto atributu.

Vlastnictví Typ Výchozí Popis
Code Řetězec Žádné. Hodnota musí být zadána. Určuje hodnotu kódu diskriminátoru.
IsDefault Boolovská logika false Pokud je hodnota true, vytvoří instanci objektu tohoto typu, pokud žádná diskriminující hodnota v úložišti neodpovídá žádné ze zadaných hodnot.
Type Typ Žádné. Hodnota musí být zadána. Určuje typ třídy v hierarchii.

Další informace najdete v tématu InheritanceMappingAttribute.

FunctionAttribute atribut

Pomocí tohoto atributu můžete určit metodu představující uloženou proceduru nebo uživatelem definovanou funkci v databázi.

Následující tabulka popisuje vlastnosti tohoto atributu.

Vlastnictví Typ Výchozí Popis
IsComposable Boolovská logika false Pokud je false, označuje mapování na uloženou proceduru. Pokud je hodnota true, označuje mapování na uživatelem definovanou funkci.
Name Řetězec Stejný řetězec jako název v databázi Určuje název uložené procedury nebo uživatelem definované funkce.

Další informace najdete v tématu FunctionAttribute.

Atribut ParameterAttribute

Tento atribut slouží k mapování vstupních parametrů u metod uložených procedur.

Následující tabulka popisuje vlastnosti tohoto atributu.

Vlastnictví Typ Výchozí Popis
DbType Řetězec Žádné Určuje typ databáze.
Name Řetězec Stejný řetězec jako název parametru v databázi Určuje název parametru.

Další informace najdete v tématu ParameterAttribute.

ResultTypeAttribute – atribut

Tento atribut použijte k určení typu výsledku.

Následující tabulka popisuje vlastnosti tohoto atributu.

Vlastnictví Typ Výchozí Popis
Type Typ (Žádné) Používá se u metod mapovaných na uložené procedury, které vrací IMultipleResults. Deklaruje platné nebo očekávané mapování typů pro uloženou proceduru.

Další informace najdete v tématu ResultTypeAttribute.

Atribut DataAttribute

Tento atribut použijte k určení názvů a polí privátního úložiště.

Následující tabulka popisuje vlastnosti tohoto atributu.

Vlastnictví Typ Výchozí Popis
Name Řetězec Stejné jako název v databázi Určuje název tabulky, sloupce atd.
Storage Řetězec Veřejné přístupové objekty Určuje název podkladového pole úložiště.

Další informace najdete v tématu DataAttribute.

Viz také