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

Name

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

Name

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

AutoSync

Nie

Weist die Common Language Runtime (CLR) an, nach einer Einfügung oder einem Aktualisierungsvorgang den Wert abzurufen.

Optionen: Always, Never, OnUpdate, OnInsert.

CanBeNull

Boolean

true

Gibt an, dass eine Spalte NULL-Werte enthalten kann.

DbType

Zeichenfolge

Abgeleiteter Datenbankspaltentyp

Verwendet Datenbanktypen und Modifizierer, um den Typ der Datenbankspalte anzugeben.

Expression

Zeichenfolge

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-Zeitstempel oder Versionsnummer.

UpdateCheck

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

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

Zeichenfolge

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

Zeichenfolge

ID der verbundenen Klasse

Kennzeichnet einen oder mehrere Member der Zielentitätsklasse als Schlüsselwerte auf der anderen Seite der Zuordnung.

ThisKey

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

Code

Zeichenfolge

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

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

IsComposable

Boolean

false

Wenn false, gibt Zuordnungen zu einer gespeicherten Prozedur an. Wenn true, gibt Zuordnungen zu einer benutzerdefinierten Funktion an.

Name

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

DbType

Zeichenfolge

Keine

Gibt den Datenbanktyp an.

Name

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

Type

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

Name

Zeichenfolge

Wie der Name in der Datenbank

Gibt den Namen der Tabelle, Spalte usw. an.

Storage

Zeichenfolge

Öffentliche Accessoren

Definiert den Namen eines zugrunde liegenden Speicherfelds an

Weitere Informationen finden Sie unter DataAttribute.

Siehe auch

Weitere Ressourcen

Referenz (LINQ to SQL)