Freigeben über


Attribute-Based Zuordnung

LINQ to SQL ordnet eine SQL Server-Datenbank einem LINQ to SQL-Objektmodell zu, indem Attribute angewendet oder eine externe Zuordnungsdatei verwendet wird. In diesem Thema wird der attributbasierte Ansatz beschrieben.

In seiner elementarsten Form ordnet LINQ to SQL einer Datenbank, DataContexteiner Tabelle einer Klasse und Spalten und Beziehungen zu Eigenschaften für diese Klassen zu. Sie können auch Attribute verwenden, um eine Vererbungshierarchie in Ihrem Objektmodell zuzuordnen. Weitere Informationen finden Sie unter How to: Generate the Object Model in Visual Basic or C#.

Entwickler, die Visual Studio verwenden, führen in der Regel attributbasierte Zuordnungen mithilfe des objektrelationalen Designers aus. Sie können auch das SQLMetal-Befehlszeilentool verwenden oder die Attribute selbst manuell codieren. Weitere Informationen finden Sie unter How to: Generate the Object Model in Visual Basic or C#.

Hinweis

Sie können auch eine externe XML-Datei zuordnen. Weitere Informationen finden Sie unter "Externe Zuordnung".

In den folgenden Abschnitten wird die attributbasierte Zuordnung ausführlicher beschrieben. Weitere Informationen finden Sie im System.Data.Linq.Mapping Namespace.

DatabaseAttribute-Attribut

Verwenden Sie dieses Attribut, um den Standardnamen der Datenbank anzugeben, wenn kein Name von der Verbindung angegeben wird. Dieses Attribut ist optional, aber wenn Sie es verwenden, müssen Sie die Name Eigenschaft anwenden, wie in der folgenden Tabelle beschrieben.

Eigentum Typ Standard BESCHREIBUNG
Name Schnur Siehe Name. Wird mit seiner Name Eigenschaft verwendet, gibt den Namen der Datenbank an.

Weitere Informationen finden Sie unter DatabaseAttribute.

TableAttribute-Attribut

Verwenden Sie dieses Attribut, um eine Klasse als Entitätsklasse festzulegen, die einer Datenbanktabelle oder -ansicht zugeordnet ist. LINQ to SQL behandelt Klassen mit diesem Attribut als persistente Klassen. In der folgenden Tabelle wird die Name Eigenschaft beschrieben.

Eigentum Typ Standard BESCHREIBUNG
Name Schnur Gleiche Zeichenfolge wie Klassenname Legt eine Klasse als Entitätsklasse fest, die einer Datenbanktabelle zugeordnet ist.

Weitere Informationen finden Sie unter TableAttribute.

ColumnAttribute-Attribut

Verwenden Sie dieses Attribut, um ein Element einer Entitätsklasse festzulegen, um eine Spalte in einer Datenbanktabelle darzustellen. Sie können dieses Attribut auf ein beliebiges Feld oder eine beliebige Eigenschaft anwenden.

Nur die Member, die Sie als Spalten identifizieren, werden abgerufen und beibehalten, wenn LINQ to SQL Änderungen in der Datenbank speichert. Elemente ohne dieses Attribut werden als nicht persistent angenommen und werden nicht für Einfügungen oder Aktualisierungen übermittelt.

In der folgenden Tabelle werden die Eigenschaften dieses Attributs beschrieben.

Eigentum Typ Standard BESCHREIBUNG
AutoSync AutoSync Nie Weist die Common Language Runtime (CLR) an, den Wert nach einem Einfüge- oder Aktualisierungsvorgang abzurufen.

Optionen: Always, Never, OnUpdate, OnInsert.
CanBeNull Boolescher Typ (Boolean) true Gibt an, dass eine Spalte Nullwerte enthalten kann.
DbType Schnur Abgeleiteter Datenbankspaltentyp Verwendet Datenbanktypen und Modifizierer, um den Typ der Datenbankspalte anzugeben.
Expression Schnur Leer Definiert eine berechnete Spalte in einer Datenbank.
IsDbGenerated Boolescher Typ (Boolean) false Gibt an, dass eine Spalte Werte enthält, die die Datenbank automatisch generiert.
IsDiscriminator Boolescher Typ (Boolean) false Gibt an, dass die Spalte einen Diskriminatorwert für eine LINQ to SQL-Vererbungshierarchie enthält.
IsPrimaryKey Boolescher Typ (Boolean) false Gibt an, dass dieses Klassenelement eine Spalte darstellt, die Teil der Primärschlüssel der Tabelle ist oder ist.
IsVersion Boolescher Typ (Boolean) false Gibt den Spaltentyp des Elements als Datenbankzeitstempel oder Versionsnummer an.
UpdateCheck UpdateCheck Always, es sei dennIsVersion, ein Mitglied ist true Gibt an, wie LINQ to SQL die Erkennung optimistischer Parallelitätskonflikte nähert.

Weitere Informationen finden Sie unter ColumnAttribute.

Hinweis

Die Werte der AssociationAttribute- und ColumnAttribute Storage-Eigenschaft beachten die Groß-/Kleinschreibung. Stellen Sie beispielsweise sicher, dass werte, die im Attribut für die AssociationAttribute.Storage-Eigenschaft verwendet werden, mit dem Fall für die entsprechenden Eigenschaftsnamen übereinstimmen, die an anderer Stelle im Code verwendet werden. Dies gilt für alle .NET-Programmiersprachen, auch für sprachen, bei denen in der Regel die Groß-/Kleinschreibung nicht beachtet wird, einschließlich Visual Basic. Weitere Informationen zur Storage-Eigenschaft finden Sie unter DataAttribute.Storage.

AssociationAttribute-Attribut

Verwenden Sie dieses Attribut, um eine Eigenschaft festzulegen, die eine Zuordnung in der Datenbank darstellt, z. B. einen Fremdschlüssel zur Primärschlüsselbeziehung. Weitere Informationen zu Beziehungen finden Sie unter How to: Map Database Relationships.

In der folgenden Tabelle werden die Eigenschaften dieses Attributs beschrieben.

Eigentum Typ Standard BESCHREIBUNG
DeleteOnNull Boolescher Typ (Boolean) false Wenn sie für eine Zuordnung platziert wird, deren Fremdschlüsselmember alle nicht nullfähig sind, wird das Objekt gelöscht, wenn die Zuordnung auf NULL festgelegt ist.
DeleteRule Schnur Nichts Fügt einer Zuordnung Löschverhalten hinzu.
IsForeignKey Boolescher Typ (Boolean) false Bei "true" wird das Mitglied als Fremdschlüssel in einer Zuordnung festgelegt, die eine Datenbankbeziehung darstellt.
IsUnique Boolescher Typ (Boolean) false Wenn true, gibt eine Eindeutigkeitseinschränkung für den Fremdschlüssel an.
OtherKey Schnur ID der zugehörigen Klasse Legt mindestens ein Element der Zielentitätsklasse als Schlüsselwerte auf der anderen Seite der Zuordnung fest.
ThisKey Schnur ID der enthaltenden Klasse Legt Member dieser Entitätsklasse fest, um die Schlüsselwerte auf dieser Seite der Zuordnung darzustellen.

Weitere Informationen finden Sie unter AssociationAttribute.

Hinweis

Die Werte der AssociationAttribute- und ColumnAttribute Storage-Eigenschaft beachten die Groß-/Kleinschreibung. Stellen Sie beispielsweise sicher, dass werte, die im Attribut für die AssociationAttribute.Storage-Eigenschaft verwendet werden, mit dem Fall für die entsprechenden Eigenschaftsnamen übereinstimmen, die an anderer Stelle im Code verwendet werden. Dies gilt für alle .NET-Programmiersprachen, auch für sprachen, bei denen in der Regel die Groß-/Kleinschreibung nicht beachtet wird, einschließlich Visual Basic. Weitere Informationen zur Storage-Eigenschaft finden Sie unter DataAttribute.Storage.

InheritanceMappingAttribute-Attribut

Verwenden Sie dieses Attribut, um eine Vererbungshierarchie zuzuordnen.

In der folgenden Tabelle werden die Eigenschaften dieses Attributs beschrieben.

Eigentum Typ Standard BESCHREIBUNG
Code Schnur Keiner. Der Wert muss angegeben werden. Gibt den Codewert des Diskriminators an.
IsDefault Boolescher Typ (Boolean) false Wenn true, instanziiert ein Objekt dieses Typs, wenn kein Diskriminatorwert im Speicher mit einem der angegebenen Werte übereinstimmt.
Type Typ Keiner. Der 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 als Darstellung einer gespeicherten Prozedur oder benutzerdefinierten Funktion in der Datenbank festzulegen.

In der folgenden Tabelle werden die Eigenschaften dieses Attributs beschrieben.

Eigentum Typ Standard BESCHREIBUNG
IsComposable Boolescher Typ (Boolean) false Wenn false, gibt die Zuordnung zu einer gespeicherten Prozedur an. Wenn wahr, gibt die Zuordnung zu einer benutzerdefinierten Funktion an.
Name Schnur Gleiche Zeichenfolge wie Name in der Datenbank Gibt den Namen der gespeicherten Prozedur oder benutzerdefinierten 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 die Eigenschaften dieses Attributs beschrieben.

Eigentum Typ Standard BESCHREIBUNG
DbType Schnur Nichts Gibt den Datenbanktyp an.
Name Schnur Gleiche Zeichenfolge wie 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 die Eigenschaften dieses Attributs beschrieben.

Eigentum Typ Standard BESCHREIBUNG
Type Typ (Keine) Wird für Methoden verwendet, die gespeicherten Prozeduren zugeordnet sind, die zurückgegeben werden IMultipleResults. 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 die Eigenschaften dieses Attributs beschrieben.

Eigentum Typ Standard BESCHREIBUNG
Name Schnur Identisch mit dem Namen in der Datenbank Gibt den Namen der Tabelle, Spalte usw. an.
Storage Schnur Öffentliche Accessoren Gibt den Namen des zugrunde liegenden Speicherfelds an.

Weitere Informationen finden Sie unter DataAttribute.

Siehe auch