Mapování na základě atributů
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 DataContexttabulku 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ář relací 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. Další informace najdete v System.Data.Linq.Mapping oboru názvů.
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.
Vlastnost | Typ | Výchozí | Popis |
---|---|---|---|
Name | String | Viz Name. | Používá se s jeho Name vlastností, určuje název databáze. |
Další informace najdete na webu 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.
Vlastnost | Typ | Výchozí | Popis |
---|---|---|---|
Name | String | 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 na webu 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.
Vlastnost | Typ | Výchozí | Popis |
---|---|---|---|
AutoSync | Autosync | 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 | Logická hodnota | true |
Označuje, že sloupec může obsahovat hodnoty null. |
DbType | String | Odvozený typ sloupce databáze | Používá typy databází a modifikátory k určení typu sloupce databáze. |
Expression | String | Prázdné | Definuje vypočítaný sloupec v databázi. |
IsDbGenerated | Logická hodnota | false |
Označuje, že sloupec obsahuje hodnoty, které databáze automaticky generuje. |
IsDiscriminator | Logická hodnota | false |
Označuje, že sloupec obsahuje diskriminující hodnotu pro hierarchii dědičnosti LINQ to SQL. |
IsPrimaryKey | Logická hodnota | false |
Určuje, že tento člen třídy představuje sloupec, který je nebo je součástí primárních klíčů tabulky. |
IsVersion | Logická hodnota | 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 na webu 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. Další informace orelacích
Následující tabulka popisuje vlastnosti tohoto atributu.
Vlastnost | Typ | Výchozí | Popis |
---|---|---|---|
DeleteOnNull | Logické | false |
Při umístění na asociace, jejíž členy cizího klíče jsou všechny nenulové, odstraní objekt, pokud je přidružení nastaveno na hodnotu null. |
DeleteRule | String | Nic | Přidá chování odstranění k přidružení. |
IsForeignKey | Logická hodnota | false |
Pokud je hodnota true, označí člena jako cizí klíč v přidružení představující vztah databáze. |
IsUnique | Logická hodnota | false |
Pokud je hodnota true, označuje omezení jedinečnosti cizího klíče. |
OtherKey | String | ID související třídy | Určuje jeden nebo více členů cílové třídy entity jako klíčové hodnoty na druhé straně přidružení. |
ThisKey | String | 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 na webu 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.
Vlastnost | Typ | Výchozí | Popis |
---|---|---|---|
Code | String | Nezaokrouhlovat. Hodnota musí být zadána. | Určuje hodnotu kódu diskriminátoru. |
IsDefault | Logická hodnota | 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 | Nezaokrouhlovat. Hodnota musí být zadána. | Určuje typ třídy v hierarchii. |
Další informace najdete na webu InheritanceMappingAttribute.
Atribut FunctionAttribute
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.
Vlastnost | Typ | Výchozí | Popis |
---|---|---|---|
IsComposable | Logické | 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 | String | Stejný řetězec jako název v databázi | Určuje název uložené procedury nebo uživatelem definované funkce. |
Další informace najdete na webu 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.
Vlastnost | Typ | Výchozí | Popis |
---|---|---|---|
DbType | String | Nic | Určuje typ databáze. |
Name | String | Stejný řetězec jako název parametru v databázi | Určuje název parametru. |
Další informace najdete na webu ParameterAttribute.
ResultTypeAttribute – atribut
Tento atribut použijte k určení typu výsledku.
Následující tabulka popisuje vlastnosti tohoto atributu.
Vlastnost | 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 na webu 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.
Vlastnost | Typ | Výchozí | Popis |
---|---|---|---|
Name | String | Stejné jako název v databázi | Určuje název tabulky, sloupce atd. |
Storage | String | Veřejné přístupové objekty | Určuje název podkladového pole úložiště. |
Další informace najdete na webu DataAttribute.