Toewijzing op basis van kenmerken
LINQ naar SQL wijst een SQL Server-database toe aan een LINQ aan het SQL-objectmodel door kenmerken toe te passen of door een extern toewijzingsbestand te gebruiken. In dit onderwerp wordt de benadering op basis van kenmerken beschreven.
In de meest elementaire vorm wijst LINQ aan SQL een database toe aan een DataContext, een tabel aan een klasse en kolommen en relaties met eigenschappen in deze 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.
Notitie
U kunt ook toewijzen met behulp van een extern XML-bestand. 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.
Kenmerk DatabaseAttribute
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.
Eigenschap | Type | Standaard | Beschrijving |
---|---|---|---|
Name | String | Zie Name | Wordt gebruikt met Name de eigenschap, geeft de naam van de database op. |
Zie DatabaseAttribute voor meer informatie.
Kenmerk TableAttribute
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.
Eigenschap | Type | Standaard | Beschrijving |
---|---|---|---|
Name | String | 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.
Eigenschap | Type | Standaard | 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 | Booleaanse waarde | true |
Geeft aan dat een kolom null-waarden kan bevatten. |
DbType | String | Kolomtype uitgestelde database | Maakt gebruik van databasetypen en modifiers om het type van de databasekolom op te geven. |
Expression | String | Leeg | Definieert een berekende kolom in een database. |
IsDbGenerated | Booleaanse waarde | false |
Geeft aan dat een kolom waarden bevat die automatisch door de database worden gegenereerd. |
IsDiscriminator | Booleaanse waarde | false |
Geeft aan dat de kolom een discriminatorwaarde bevat voor een LINQ naar sql-overnamehiërarchie. |
IsPrimaryKey | Booleaanse waarde | false |
Hiermee geeft u op dat dit klasselid een kolom vertegenwoordigt die deel uitmaakt van de primaire sleutels van de tabel. |
IsVersion | Booleaanse waarde | false |
Hiermee wordt het kolomtype van het lid geïdentificeerd als een tijdstempel of versienummer van de database. |
UpdateCheck | UpdateControle | Always , tenzij IsVersion voor true een lid |
Hiermee geeft u op hoe LINQ naar SQL de detectie van optimistische gelijktijdigheidsconflicten nadert. |
Zie ColumnAttribute voor meer informatie.
Notitie
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 DataAttribute.StorageStorage.
AssociationAttribute-kenmerk
Gebruik dit kenmerk om een eigenschap aan te wijzen die een koppeling in de database vertegenwoordigt, zoals een refererende sleutel naar primaire-sleutelrelatie. Zie Instructies voor het toewijzen van databaserelaties voor meer informatie over relaties.
In de volgende tabel worden de eigenschappen van dit kenmerk beschreven.
Eigenschap | Type | Standaard | Beschrijving |
---|---|---|---|
DeleteOnNull | Booleaanse waarde | false |
Wanneer deze wordt geplaatst op een koppeling waarvan de refererende sleutelleden allemaal niet nullbaar zijn, verwijdert u het object wanneer de koppeling is ingesteld op null. |
DeleteRule | String | Geen | Hiermee voegt u het gedrag voor verwijderen toe aan een koppeling. |
IsForeignKey | Booleaanse waarde | false |
Indien waar, wijst u het lid aan als de refererende sleutel in een koppeling die een databaserelatie vertegenwoordigt. |
IsUnique | Booleaanse waarde | false |
Als waar, geeft u een uniekheidsbeperking voor de refererende sleutel aan. |
OtherKey | String | Id van de gerelateerde klasse | Wijst een of meer leden van de doelentiteitsklasse aan als sleutelwaarden aan de andere kant van de koppeling. |
ThisKey | String | 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.
Notitie
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 DataAttribute.StorageStorage.
InheritanceMappingAttribute Attribute
Gebruik dit kenmerk om een overnamehiërarchie toe te wijzen.
In de volgende tabel worden de eigenschappen van dit kenmerk beschreven.
Eigenschap | Type | Standaard | Beschrijving |
---|---|---|---|
Code | String | Geen. De waarde moet worden opgegeven. | Hiermee geeft u de codewaarde van de discriminator. |
IsDefault | Booleaanse waarde | false |
Indien waar, wordt een object van dit type geïnstitueerd wanneer er geen discriminatorwaarde in het archief overeenkomt met een van de opgegeven waarden. |
Type | Type | 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.
Eigenschap | Type | Standaard | Beschrijving |
---|---|---|---|
IsComposable | Booleaanse waarde | 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 | String | 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.
Eigenschap | Type | Standaard | Beschrijving |
---|---|---|---|
DbType | String | Geen | Hiermee geeft u het databasetype op. |
Name | String | 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.
Eigenschap | Type | Standaard | Beschrijving |
---|---|---|---|
Type | Type | (Geen) | Wordt gebruikt op methoden die zijn toegewezen aan opgeslagen procedures die worden geretourneerd IMultipleResults. Declareert de geldige of verwachte typetoewijzingen voor de opgeslagen procedure. |
Zie ResultTypeAttribute voor meer informatie.
Kenmerk DataAttribute
Gebruik dit kenmerk om namen en privéopslagvelden op te geven.
In de volgende tabel worden de eigenschappen van dit kenmerk beschreven.
Eigenschap | Type | Standaard | Beschrijving |
---|---|---|---|
Name | String | Hetzelfde als de naam in de database | Hiermee geeft u de naam van de tabel, kolom enzovoort. |
Storage | String | Openbare toegangsrechten | Hiermee geeft u de naam van het onderliggende opslagveld. |
Zie DataAttribute voor meer informatie.