Freigeben über


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.

Siehe auch