Sdílet prostřednictvím


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.

Viz také