Attributbasiertes Zuordnen
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 Vorgehensweise: Generieren des Objektmodells in Visual Basic oder C#.
Entwickler*innen, die Visual Studio verwenden, führen in der Regel attributbasierte Zuordnungen mithilfe von Objektrelationaler Designer durch. Sie können auch das Befehlszeilentool SQLMetal verwenden, oder Sie können den Code für die Attribute selbst schreiben. Weitere Informationen finden Sie unter Vorgehensweise: Generieren des Objektmodells in Visual Basic oder C#.
Hinweis
Sie können die Zuordnung auch mit einer externen XML-Datei vornehmen. Weitere Informationen finden Sie unter Externe Zuordnung.
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 | type | Standard | BESCHREIBUNG |
---|---|---|---|
Name | String | Siehe Name. | Gibt in Verbindung mit seiner Name-Eigenschaft den Namen der Datenbank an. |
Weitere Informationen finden Sie unter DatabaseAttribute.
TableAttribute-Attribut
Verwenden Sie dieses Attribut, um eine Klasse als Entität zu kennzeichnen, die einer Datenbanktabelle oder einer Ansicht zugeordnet ist. LINQ to SQL behandelt Klassen, die über dieses Attribut als permanente Klassen verfügen. In der folgenden Tabelle wird die Name-Eigenschaft beschrieben.
Eigenschaft | type | Standard | BESCHREIBUNG |
---|---|---|---|
Name | String | 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 Updates übermittelt.
In der folgenden Tabelle werden Eigenschaften dieses Attributs beschrieben.
Eigenschaft | type | Standard | Beschreibung |
---|---|---|---|
AutoSync | AutoSync | Nie | Weist die Common Language Runtime (CLR) an, nach einer Einfügung oder einem Updatevorgang den Wert abzurufen. Optionen: Always, Never, OnUpdate, OnInsert. |
CanBeNull | Boolean | true |
Gibt an, dass eine Spalte NULL-Werte enthalten kann. |
DbType | String | Abgeleiteter Datenbankspaltentyp | Verwendet Datenbanktypen und Modifizierer, um den Typ der Datenbankspalte anzugeben. |
Expression | String | Leer | Definiert eine berechnete Spalte in einer Datenbank. |
IsDbGenerated | Boolean | false |
Gibt an, dass eine Spalte Werte enthält, die die Datenbank automatisch generiert. |
IsDiscriminator | Boolean | false |
Gibt an, dass die Spalte einen Diskriminatorwert für eine LINQ to SQL-Vererbungshierarchie enthält |
IsPrimaryKey | 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. |
IsVersion | Boolean | false |
Identifiziert den Spaltentyp des Members als Datenbank-Timestamp oder Versionsnummer. |
UpdateCheck | UpdateCheck | Always , außer wenn IsVersiontrue für einen Member ist |
Gibt an, wie LINQ to SQL die 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 auch 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 zu Beziehungen finden Sie unter Vorgehensweise: Zuordnen von Datenbankbeziehungen.
In der folgenden Tabelle werden Eigenschaften dieses Attributs beschrieben.
Eigenschaft | type | Standard | Beschreibung |
---|---|---|---|
DeleteOnNull | 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. |
DeleteRule | String | Keine | Fügt einer Zuordnung ein Löschverhalten hinzu. |
IsForeignKey | Boolean | false |
Wenn true, legt den Member als Fremdschlüssel in einer Zuordnung fest, die eine Datenbankbeziehung darstellt. |
IsUnique | Boolean | false |
Wenn true, gibt eine Eindeutigkeitseinschränkung des Fremdschlüssels an. |
OtherKey | String | ID der verbundenen Klasse | Kennzeichnet einen oder mehrere Member der Zielentitätsklasse als Schlüsselwerte auf der anderen Seite der Zuordnung. |
ThisKey | String | 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 auch 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 | type | Standard | BESCHREIBUNG |
---|---|---|---|
Code | String | Keine. Wert muss angegeben werden. | Gibt den Codewert des Diskriminators an. |
IsDefault | Boolean | false |
Wenn true, erstellt eine Objektinstanz dieses Typs, wenn kein Diskriminatorwert im Store mit einem der angegebenen Werte übereinstimmt. |
Type | type | Keine. 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 | type | Standard | Beschreibung |
---|---|---|---|
IsComposable | Boolean | false |
Wenn false, gibt Zuordnungen zu einer gespeicherten Prozedur an. Wenn true, gibt Zuordnungen zu einer benutzerdefinierten Funktion an. |
Name | String | 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 | type | Standard | BESCHREIBUNG |
---|---|---|---|
DbType | String | Keine | Gibt den Datenbanktyp an. |
Name | String | 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 | type | Standard | BESCHREIBUNG |
---|---|---|---|
Type | type | (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 | type | Standard | BESCHREIBUNG |
---|---|---|---|
Name | String | Wie der Name in der Datenbank | Gibt den Namen der Tabelle, Spalte usw. an. |
Storage | String | Öffentliche Zugriffsmethoden | Definiert den Namen eines zugrunde liegenden Speicherfelds an |
Weitere Informationen finden Sie unter DataAttribute.