Freigeben über


Attributbasierte Zuordnung (LINQ to SQL)

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# (LINQ to SQL).

Entwickler, die mit Visual Studio arbeiten, führen attributbasiertes Mapping in der Regel mithilfe von O/R-Designer aus. Weitere Informationen finden Sie unter Object Relational Designer (O/R-Designer) und Object Relational Designer (O/R-Designer) und Object Relational Designer (O/R-Designer). Sie können jedoch auch das Befehlszeilentool SQLMetal verwenden oder den Code für die Attribute selbst verfassen. Weitere Informationen finden Sie unter Vorgehensweise: Generieren des Objektmodells in Visual Basic oder C# (LINQ to SQL).

HinweisHinweis

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

Standardwert

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

Typ

Standardwert

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

Typ

Standardwert

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 der Erkennung von Konflikten bei der vollständigen Parallelität handhabt.

Weitere Informationen finden Sie unter ColumnAttribute.

HinweisHinweis

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 Vorgehensweise: Zuordnen von Datenbankbeziehungen (LINQ to SQL).

In der folgenden Tabelle werden Eigenschaften dieses Attributs beschrieben.

Eigenschaft

Typ

Standardwert

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

Keiner

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.

HinweisHinweis

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

Standardwert

Beschreibung

Code

String

Keiner. 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

Standardwert

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

Standardwert

Beschreibung

DbType

String

Keiner

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

Typ

Standardwert

Beschreibung

Type

Typ

(Keiner)

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

Standardwert

Beschreibung

Name

String

Wie der Name in der Datenbank

Gibt den Namen der Tabelle, Spalte usw. an.

Storage

Zeichenfolge

Öffentliche Accessoren

Gibt den Namen eines zugrunde liegenden Speicherfelds an.

Weitere Informationen finden Sie unter DataAttribute.

Siehe auch

Weitere Ressourcen

Referenz (LINQ to SQL)