Attributbasierte Zuordnung (LINQ to SQL)
Aktualisiert: November 2007
LINQ to SQL weist einem LINQ to SQL-Objektmodell mithilfe von Attributen oder mit einer externen Zuordnungsdatei eine SQL Server-Datenbank zu. Dieser Abschnitt befasst sich mit dem attributbasierten Ansatz.
In der einfachsten Form weist LINQ to SQL eine Datenbank einem DataContext, eine Tabelle einer Klasse und Spalten/Beziehungen den Eigenschaften dieser Klassen zu. Sie können auch Attribute verwenden, um im Objektmodell eine Vererbungshierarchie zuzuordnen. Weitere Informationen finden Sie unter Gewusst wie: Generieren des Objektmodells in Visual Basic oder C# (LINQ to SQL).
Entwickler, die mit Visual Studio arbeiten, führen attributbasiertes Mapping in der Regel mithilfe von O/R-Designer aus. Sie können jedoch auch das Befehlszeilentool SQLMetal verwenden oder den Code für die Attribute selbst verfassen. Weitere Informationen finden Sie unter Gewusst wie: Generieren des Objektmodells in Visual Basic oder C# (LINQ to SQL).
Hinweis: |
---|
Sie können die Zuordnung auch mit einer externen XML-Datei vornehmen. Weitere Informationen finden Sie unter Referenz zur externen Zuordnung (LINQ to SQL). |
In den folgenden Abschnitten wird die attributbasierte Zuordnung ausführlich beschrieben. Weitere Informationen finden Sie unter den Ausführungen zum System.Data.Linq.Mapping-Namespace.
DatabaseAttribute-Attribut
Verwenden Sie dieses Attribut, um den Standardnamen der Datenbank anzugeben, wenn dieser nicht von der Verbindung bereitgestellt wird. Dieses Attribut ist optional. Wenn Sie es jedoch verwenden, müssen Sie die Name-Eigenschaft gemäß der folgenden Tabelle anwenden.
Eigenschaft |
Typ |
Standard |
Beschreibung |
---|---|---|---|
Zeichenfolge |
Siehe Name |
Gibt in Verbindung mit seiner Name-Eigenschaft den Namen der Datenbank an. |
Weitere Informationen finden Sie unter DatabaseAttribute.
TableAttribute-Attribut
Mit diesem Attribut legen Sie eine Klasse als Entitätsklasse fest, die einer Datenbanktabelle oder -sicht zugeordnet ist. LINQ to SQL behandelt Klassen mit diesem Attribut als erhaltene Klassen. In der folgenden Tabelle wird die Name-Eigenschaft beschrieben.
Eigenschaft |
Typ |
Standard |
Beschreibung |
---|---|---|---|
Zeichenfolge |
Gleiche Zeichenfolge wie Klassenname |
Legt eine Klasse als Entitätsklasse fest, die einer Datenbanktabelle zugeordnet ist. |
Weitere Informationen finden Sie unter TableAttribute.
ColumnAttribute-Attribut
Mit diesem Attribut können Sie einen Member einer Entitätsklasse für die Darstellung einer Spalte in einer Datenbanktabelle festlegen. Dieses Attribut kann auf Felder oder Eigenschaften angewendet werden.
Nur die von Ihnen als Spalten angegebenen Member werden abgerufen und erhalten, wenn LINQ to SQL Änderungen in der Datenbank speichert. Member ohne dieses Attribut gelten als nicht permanent und werden nicht für Einfügungen oder Aktualisierungen übermittelt.
In der folgenden Tabelle werden Eigenschaften dieses Attributs beschrieben.
Eigenschaft |
Typ |
Standard |
Beschreibung |
---|---|---|---|
AutoSync |
Nie |
Weist die Common Language Runtime (CLR) an, nach einer Einfügung oder einem Aktualisierungsvorgang den Wert abzurufen. Optionen: Always, Never, OnUpdate, OnInsert. |
|
Boolean |
true |
Gibt an, dass eine Spalte NULL-Werte enthalten kann. |
|
Zeichenfolge |
Abgeleiteter Datenbankspaltentyp |
Verwendet Datenbanktypen und Modifizierer, um den Typ der Datenbankspalte anzugeben. |
|
Zeichenfolge |
Leer |
Definiert eine berechnete Spalte in einer Datenbank. |
|
Boolean |
false |
Gibt an, dass eine Spalte Werte enthält, die die Datenbank automatisch generiert. |
|
Boolean |
false |
Gibt an, dass die Spalte einen Diskriminatorwert für eine LINQ to SQL Vererbungshierarchie enthält. |
|
Boolean |
false |
Legt fest, dass dieser Klassenmember eine Spalte darstellt, die zu den Primärschlüsseln der Tabelle zählt oder ein Teil davon ist. |
|
Boolean |
false |
Identifiziert den Spaltentyp des Members als Datenbank-Zeitstempel oder Versionsnummer. |
|
UpdateCheck |
Always, außer wenn IsVersiontrue für einen Member ist |
Gibt an, wie LINQ to SQL der Erkennung von Konflikten bei der vollständigen Parallelität handhabt. |
Weitere Informationen finden Sie unter ColumnAttribute.
Hinweis: |
---|
Bei den "Storage"-Eigenschaftswerten "AssociationAttribute" und "ColumnAttribute" wird die Groß- und Kleinschreibung beachtet. Stellen Sie beispielsweise sicher, dass die im Attribut für die "AssociationAttribute.Storage"-Eigenschaft verwendeten Werte in der Schreibung mit den entsprechenden Eigenschaftsnamen an anderer Stelle im Code übereinstimmen. Dies gilt für alle .NET-Programmiersprachen, auch für diejenigen, bei denen die Groß- und Kleinschreibung nicht beachtet wird, darunter Visual Basic. Weitere Informationen über die "Storage"-Eigenschaft finden Sie unter DataAttribute.Storage. |
AssociationAttribute-Attribut
Mit diesem Attribut legen Sie eine Eigenschaft für die Darstellung der Zuordnung in einer Datenbank dar, z. B. die Beziehung zwischen einem Fremdschlüssel und einem Primärschlüssel. Weitere Informationen über Beziehungen finden Sie unter Gewusst wie: Zuordnen von Datenbankbeziehungen (LINQ to SQL).
In der folgenden Tabelle werden Eigenschaften dieses Attributs beschrieben.
Eigenschaft |
Typ |
Standard |
Beschreibung |
---|---|---|---|
Boolean |
false |
Bei Platzierung in einer Zuordnung, für deren Fremdschlüsselmember keine NULL-Werte zulässig sind, wird das Objekt gelöscht, wenn die Zuordnung auf NULL festgelegt wird. |
|
Zeichenfolge |
Keine |
Fügt einer Zuordnung ein Löschverhalten hinzu. |
|
Boolean |
false |
Wenn true, legt den Member als Fremdschlüssel in einer Zuordnung fest, die eine Datenbankbeziehung darstellt. |
|
Boolean |
false |
Wenn true, gibt eine Eindeutigkeitseinschränkung des Fremdschlüssels an. |
|
Zeichenfolge |
ID der verbundenen Klasse |
Kennzeichnet einen oder mehrere Member der Zielentitätsklasse als Schlüsselwerte auf der anderen Seite der Zuordnung. |
|
Zeichenfolge |
ID der enthaltenden Klasse |
Legt Member dieser Entitätsklasse fest, um die Schlüsselwerte diesseits der Zuordnung darzustellen. |
Weitere Informationen finden Sie unter AssociationAttribute.
Hinweis: |
---|
Bei den "Storage"-Eigenschaftswerten "AssociationAttribute" und "ColumnAttribute" wird die Groß- und Kleinschreibung beachtet. Stellen Sie beispielsweise sicher, dass die im Attribut für die "AssociationAttribute.Storage"-Eigenschaft verwendeten Werte in der Schreibung mit den entsprechenden Eigenschaftsnamen an anderer Stelle im Code übereinstimmen. Dies gilt für alle .NET-Programmiersprachen, auch für diejenigen, bei denen die Groß- und Kleinschreibung nicht beachtet wird, darunter Visual Basic. Weitere Informationen über die "Storage"-Eigenschaft finden Sie unter DataAttribute.Storage. |
InheritanceMappingAttribute-Attribut
Verwenden Sie dieses Attribut, um eine Vererbungshierarchie zuzuordnen.
In der folgenden Tabelle werden Eigenschaften dieses Attributs beschrieben.
Eigenschaft |
Typ |
Standard |
Beschreibung |
---|---|---|---|
Zeichenfolge |
Keine. Wert muss angegeben werden. |
Gibt den Codewert des Diskriminators an. |
|
Boolean |
false |
Wenn true, erstellt eine Objektinstanz dieses Typs, wenn kein Diskriminatorwert im Store mit einem der angegebenen Werte übereinstimmt. |
|
Typ |
Keiner. Wert muss angegeben werden. |
Gibt den Typ der Klasse in der Hierarchie an. |
Weitere Informationen finden Sie unter InheritanceMappingAttribute.
FunctionAttribute-Attribut
Verwenden Sie dieses Attribut, um eine Methode für die Darstellung einer gespeicherten Prozedur oder einer benutzerdefinierten Funktion in der Datenbank festzulegen.
In der folgenden Tabelle werden Eigenschaften dieses Attributs beschrieben.
Eigenschaft |
Typ |
Standard |
Beschreibung |
---|---|---|---|
Boolean |
false |
Wenn false, gibt Zuordnungen zu einer gespeicherten Prozedur an. Wenn true, gibt Zuordnungen zu einer benutzerdefinierten Funktion an. |
|
Zeichenfolge |
Gleiche Zeichenfolge wie der Name in der Datenbank |
Gibt den Namen der gespeicherten Prozedur oder der benutzerdefinierter Funktion an. |
Weitere Informationen finden Sie unter FunctionAttribute.
ParameterAttribute-Attribut
Verwenden Sie dieses Attribut, um Eingabeparameter für gespeicherte Prozedurmethoden zuzuordnen.
In der folgenden Tabelle werden Eigenschaften dieses Attributs beschrieben.
Eigenschaft |
Typ |
Standard |
Beschreibung |
---|---|---|---|
Zeichenfolge |
Keine |
Gibt den Datenbanktyp an. |
|
Zeichenfolge |
Gleiche Zeichenfolge wie der Parametername in der Datenbank |
Gibt einen Namen für den Parameter an. |
Weitere Informationen finden Sie unter ParameterAttribute.
ResultTypeAttribute-Attribut
Verwenden Sie dieses Attribut, um einen Ergebnistyp anzugeben.
In der folgenden Tabelle werden Eigenschaften dieses Attributs beschrieben.
Eigenschaft |
Typ |
Standard |
Beschreibung |
---|---|---|---|
Typ |
(Keine) |
Verwendet für Methoden, die gespeicherten Prozeduren zugeordnet werden, die IMultipleResults zurückgeben. Deklariert die gültigen oder erwarteten Typzuordnungen für die gespeicherte Prozedur. |
Weitere Informationen finden Sie unter ResultTypeAttribute.
DataAttribute-Attribut
Verwenden Sie dieses Attribut, um Namen und private Speicherfelder anzugeben.
In der folgenden Tabelle werden Eigenschaften dieses Attributs beschrieben.
Eigenschaft |
Typ |
Standard |
Beschreibung |
---|---|---|---|
Zeichenfolge |
Wie der Name in der Datenbank |
Gibt den Namen der Tabelle, Spalte usw. an. |
|
Zeichenfolge |
Öffentliche Accessoren |
Definiert den Namen eines zugrunde liegenden Speicherfelds an |
Weitere Informationen finden Sie unter DataAttribute.