Freigeben über


Attributbasiertes Zuordnen

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 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 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 mithilfe einer externen XML-Datei eine Zuordnung vornehmen. 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, außer wenn IsVersiontrue für einen Member ist Gibt an, wie LINQ to SQL die Erkennung optimistischer Parallelitätskonflikte angeht.

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 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 jene, die normalerweise nicht auf Groß- und Kleinschreibung achten, einschließlich Visual Basic. Weitere Informationen zur Speichereigenschaft 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 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 Schnur Nichts Fügt einer Verknüpfung Löschfunktionalität hinzu.
IsForeignKey Boolescher Typ (Boolean) false Wenn true, legt den Member als Fremdschlüssel in einer Zuordnung fest, die eine Datenbankbeziehung darstellt.
IsUnique Boolescher Typ (Boolean) false Wenn true, gibt eine Eindeutigkeitseinschränkung des Fremdschlüssels an.
OtherKey Schnur ID der zugehörigen Klasse Legt ein oder mehrere Mitglieder der Zielentitäts-Klasse als Schlüsselwerte auf der anderen Seite der Assoziation fest.
ThisKey Schnur ID der enthaltenden Klasse Legt Mitglieder dieser Entitätsklasse fest, die die Schlüsselwerte auf dieser Seite der Beziehung darstellen.

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 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 jene, die normalerweise nicht auf Groß- und Kleinschreibung achten, einschließlich Visual Basic. Weitere Informationen zur Speichereigenschaft 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 falsch, weist darauf hin, dass es sich um eine Zuordnung zu einer gespeicherten Prozedur handelt. 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 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 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 Zugriffsmethoden Gibt den Namen des zugrunde liegenden Speicherfelds an.

Weitere Informationen finden Sie unter DataAttribute.

Siehe auch