Delen via


Mapping van Attribute-Based

LINQ to SQL koppelt een SQL Server-database aan een LINQ bij het SQL-objectmodel door attributen toe te passen of door een extern mappingbestand te gebruiken. In dit onderwerp wordt de benadering op basis van kenmerken beschreven.

In de meest elementaire vorm matcht LINQ to SQL een database met een DataContext, een tabel met een klasse, en kolommen en relaties met eigenschappen van die klassen. U kunt ook kenmerken gebruiken om een overnamehiërarchie in uw objectmodel toe te wijzen. Zie Het objectmodel genereren in Visual Basic of C# voor meer informatie.

Ontwikkelaars die Visual Studio gebruiken, voeren doorgaans toewijzingen op basis van kenmerken uit met behulp van Object Relational Designer. U kunt ook het opdrachtregelprogramma SQLMetal gebruiken of u kunt de kenmerken zelf codeeren. Zie Het objectmodel genereren in Visual Basic of C# voor meer informatie.

Opmerking

U kunt ook toewijzen door een extern XML-bestand te gebruiken. Zie Externe toewijzing voor meer informatie.

In de volgende secties worden toewijzingen op basis van kenmerken gedetailleerder beschreven. Zie de System.Data.Linq.Mapping naamruimte voor meer informatie.

DatabaseAttribute-kenmerk

Gebruik dit kenmerk om de standaardnaam van de database op te geven wanneer er geen naam wordt opgegeven door de verbinding. Dit kenmerk is optioneel, maar als u het gebruikt, moet u de Name eigenschap toepassen, zoals beschreven in de volgende tabel.

Vastgoed Typologie Verstek Beschrijving
Name Snaar / Touwtje Zie Name Wordt gebruikt met Name de eigenschap, geeft de naam van de database op.

Zie DatabaseAttribute voor meer informatie.

TableAttribute-attribuut

Gebruik dit kenmerk om een klasse aan te wijzen als een entiteitsklasse die is gekoppeld aan een databasetabel of -weergave. LINQ naar SQL behandelt klassen met dit kenmerk als permanente klassen. In de volgende tabel wordt de Name eigenschap beschreven.

Vastgoed Typologie Verstek Beschrijving
Name Snaar / Touwtje Dezelfde tekenreeks als klassenaam Wijst een klasse aan als een entiteitsklasse die is gekoppeld aan een databasetabel.

Zie TableAttribute voor meer informatie.

ColumnAttribute-kenmerk

Gebruik dit kenmerk om een lid van een entiteitsklasse aan te wijzen voor een kolom in een databasetabel. U kunt dit kenmerk toepassen op elk veld of elke eigenschap.

Alleen de leden die u als kolommen identificeert, worden opgehaald en behouden wanneer LINQ in SQL wijzigingen in de database opslaat. Leden zonder dit kenmerk worden ervan uitgegaan dat ze niet permanent zijn en niet worden verzonden voor invoegingen of updates.

In de volgende tabel worden de eigenschappen van dit kenmerk beschreven.

Vastgoed Typologie Verstek Beschrijving
AutoSync AutoSync Nooit Instrueert de Common Language Runtime (CLR) om de waarde op te halen na een invoeg- of updatebewerking.

Opties: Altijd, Nooit, OnUpdate, OnInsert.
CanBeNull Booleaan true Geeft aan dat een kolom null-waarden kan bevatten.
DbType Snaar / Touwtje Afgeleid kolomtype van de database Maakt gebruik van databasetypen en modifiers om het type van de databasekolom op te geven.
Expression Snaar / Touwtje Leeg Definieert een berekende kolom in een database.
IsDbGenerated Booleaan false Geeft aan dat een kolom waarden bevat die automatisch door de database worden gegenereerd.
IsDiscriminator Booleaan false Geeft aan dat de kolom een discriminatorwaarde bevat voor een LINQ naar SQL-erfenishiërarchie.
IsPrimaryKey Booleaan false Hiermee geeft u op dat dit klasselid een kolom vertegenwoordigt die deel uitmaakt van de primaire sleutels van de tabel.
IsVersion Booleaan false Hiermee wordt het kolomtype van het lid geïdentificeerd als een tijdstempel of versienummer van de database.
UpdateCheck Controle van updates tenzij AlwaysIsVersion is voor een lid Hiermee geeft u op hoe LINQ naar SQL de detectie van optimistische gelijktijdigheidsconflicten nadert.

Zie ColumnAttribute voor meer informatie.

Opmerking

De eigenschapswaarden AssociationAttribute en ColumnAttribute Storage zijn hoofdlettergevoelig. Zorg er bijvoorbeeld voor dat waarden die worden gebruikt in het kenmerk voor de eigenschap AssociationAttribute.Storage overeenkomen met het geval voor de bijbehorende eigenschapsnamen die elders in de code worden gebruikt. Dit geldt voor alle .NET-programmeertalen, zelfs voor programmeertalen die doorgaans niet hoofdlettergevoelig zijn, waaronder Visual Basic. Zie voor meer informatie over de eigenschap Storage DataAttribute.Storage.

AssociationAttribute-attribuut

Gebruik dit kenmerk om een eigenschap aan te wijzen die een koppeling in de database vertegenwoordigt, zoals een refererende sleutel naar een primaire sleutel. Voor meer informatie over relaties, zie Instructies voor het toewijzen van databaserelaties.

In de volgende tabel worden de eigenschappen van dit kenmerk beschreven.

Vastgoed Typologie Verstek Beschrijving
DeleteOnNull Booleaan false Wanneer deze wordt toegepast op een koppeling waarvan de buitenlandse sleutelleden allemaal niet-nulbaar zijn, wordt het object verwijderd wanneer de koppeling op nul wordt gezet.
DeleteRule Snaar / Touwtje Geen Hiermee voegt u verwijderingsgedrag toe op een koppeling.
IsForeignKey Booleaan false Indien waar, wijst u het lid aan als de refererende sleutel in een koppeling die een databaserelatie vertegenwoordigt.
IsUnique Booleaan false Als waar, geeft dit een uniekheidsbeperking voor de vreemde sleutel aan.
OtherKey Snaar / Touwtje Id van de gerelateerde klasse Wijst een of meer leden van de doelentiteitsklasse aan als sleutelwaarden aan de andere kant van de koppeling.
ThisKey Snaar / Touwtje Id van de bevatde klasse Wijst leden van deze entiteitsklasse aan om de sleutelwaarden aan deze kant van de koppeling weer te geven.

Zie AssociationAttribute voor meer informatie.

Opmerking

De eigenschapswaarden AssociationAttribute en ColumnAttribute Storage zijn hoofdlettergevoelig. Zorg er bijvoorbeeld voor dat waarden die worden gebruikt in het kenmerk voor de eigenschap AssociationAttribute.Storage overeenkomen met het geval voor de bijbehorende eigenschapsnamen die elders in de code worden gebruikt. Dit geldt voor alle .NET-programmeertalen, zelfs voor programmeertalen die doorgaans niet hoofdlettergevoelig zijn, waaronder Visual Basic. Zie voor meer informatie over de eigenschap Storage DataAttribute.Storage.

InheritanceMappingAttribute Attribute

Gebruik dit kenmerk om een overnamehiërarchie toe te wijzen.

In de volgende tabel worden de eigenschappen van dit kenmerk beschreven.

Vastgoed Typologie Verstek Beschrijving
Code Snaar / Touwtje Geen. De waarde moet worden opgegeven. Geeft de codewaarde van de discriminator op.
IsDefault Booleaan false Indien waar, wordt een object van dit type gecreëerd wanneer er geen discriminatorwaarde in de opslag overeenkomt met een van de opgegeven waarden.
Type Typologie Geen. De waarde moet worden opgegeven. Hiermee geeft u het type van de klasse in de hiërarchie.

Zie InheritanceMappingAttribute voor meer informatie.

Kenmerk FunctionAttribute

Gebruik dit kenmerk om een methode aan te wijzen die een opgeslagen procedure of door de gebruiker gedefinieerde functie in de database vertegenwoordigt.

In de volgende tabel worden de eigenschappen van dit kenmerk beschreven.

Vastgoed Typologie Verstek Beschrijving
IsComposable Booleaan false Als dit onwaar is, wordt de toewijzing aan een opgeslagen procedure aangegeven. Als waar, geeft dit de toewijzing aan een door de gebruiker gedefinieerde functie aan.
Name Snaar / Touwtje Dezelfde tekenreeks als de naam in de database Hiermee geeft u de naam van de opgeslagen procedure of door de gebruiker gedefinieerde functie.

Zie FunctionAttribute voor meer informatie.

ParameterAttribute-kenmerk

Gebruik dit kenmerk om invoerparameters toe te wijzen aan opgeslagen proceduremethoden.

In de volgende tabel worden de eigenschappen van dit kenmerk beschreven.

Vastgoed Typologie Verstek Beschrijving
DbType Snaar / Touwtje Geen Hiermee geeft u het databasetype op.
Name Snaar / Touwtje Dezelfde tekenreeks als de parameternaam in de database Hiermee geeft u een naam voor de parameter.

Zie ParameterAttribute voor meer informatie.

Kenmerk ResultTypeAttribute

Gebruik dit kenmerk om een resultaattype op te geven.

In de volgende tabel worden de eigenschappen van dit kenmerk beschreven.

Vastgoed Typologie Verstek Beschrijving
Type Typologie Geen Wordt gebruikt voor methoden die in kaart zijn gebracht met opgeslagen procedures die IMultipleResults retourneren. Declareert de geldige of verwachte typetoewijzingen voor de opgeslagen procedure.

Zie ResultTypeAttribute voor meer informatie.

Attribuut DataAttribute

Gebruik dit kenmerk om namen en privéopslagvelden op te geven.

In de volgende tabel worden de eigenschappen van dit kenmerk beschreven.

Vastgoed Typologie Verstek Beschrijving
Name Snaar / Touwtje Hetzelfde als de naam in de database Hiermee geeft u de naam van de tabel, kolom enzovoort.
Storage Snaar / Touwtje Openbare toegangsmethodes Hiermee geeft u de naam van het onderliggende opslagveld.

Zie DataAttribute voor meer informatie.

Zie ook