Attributbaserad mappning
LINQ till SQL mappar en SQL Server-databas till en LINQ-till SQL-objektmodell genom att antingen använda attribut eller med hjälp av en extern mappningsfil. Det här avsnittet beskriver den attributbaserade metoden.
I sin mest elementära form mappar LINQ till SQL en databas till en DataContext, en tabell till en klass och kolumner och relationer till egenskaper i dessa klasser. Du kan också använda attribut för att mappa en arvshierarki i objektmodellen. Mer information finns i Så här skapar du objektmodellen i Visual Basic eller C#.
Utvecklare som använder Visual Studio utför vanligtvis attributbaserad mappning med hjälp av objektrelationsdesignern. Du kan också använda kommandoradsverktyget SQLMetal, eller så kan du handkoda attributen själv. Mer information finns i Så här skapar du objektmodellen i Visual Basic eller C#.
Kommentar
Du kan också mappa med hjälp av en extern XML-fil. Mer information finns i Extern mappning.
I följande avsnitt beskrivs attributbaserad mappning i detalj. Mer information finns i System.Data.Linq.Mapping namnområdet.
DatabaseAttribute-attribut
Använd det här attributet för att ange standardnamnet för databasen när ett namn inte anges av anslutningen. Det här attributet är valfritt, men om du använder det måste du använda Name egenskapen enligt beskrivningen i följande tabell.
Property | Type | Standardvärde | beskrivning |
---|---|---|---|
Name | String | Se Name | Används med dess Name egenskap, anger namnet på databasen. |
Mer information finns i DatabaseAttribute.
TableAttribute-attribut
Använd det här attributet för att ange en klass som en entitetsklass som är associerad med en databastabell eller vy. LINQ till SQL behandlar klasser som har det här attributet som beständiga klasser. I följande tabell beskrivs egenskapen Name .
Property | Type | Standardvärde | beskrivning |
---|---|---|---|
Name | String | Samma sträng som klassnamn | Anger en klass som en entitetsklass som är associerad med en databastabell. |
Mer information finns i TableAttribute.
ColumnAttribute-attribut
Använd det här attributet om du vill ange en medlem i en entitetsklass för att representera en kolumn i en databastabell. Du kan använda det här attributet för valfritt fält eller en egenskap.
Endast de medlemmar som du identifierar som kolumner hämtas och sparas när LINQ till SQL sparar ändringar i databasen. Medlemmar utan det här attributet antas vara icke-beständiga och skickas inte för infogningar eller uppdateringar.
I följande tabell beskrivs egenskaperna för det här attributet.
Property | Type | Standardvärde | beskrivning |
---|---|---|---|
AutoSync | Autosync | Aldrig | Instruerar CLR (Common Language Runtime) att hämta värdet efter en infognings- eller uppdateringsåtgärd. Alternativ: Always, Never, OnUpdate, OnInsert. |
CanBeNull | Booleskt | true |
Anger att en kolumn kan innehålla null-värden. |
DbType | String | Härledd databaskolumntyp | Använder databastyper och modifierare för att ange typen av databaskolumn. |
Expression | String | Tomt | Definierar en beräknad kolumn i en databas. |
IsDbGenerated | Booleskt | false |
Anger att en kolumn innehåller värden som databasen genererar automatiskt. |
IsDiscriminator | Booleskt | false |
Anger att kolumnen innehåller ett diskriminerande värde för en LINQ-till SQL-arvshierarki. |
IsPrimaryKey | Booleskt | false |
Anger att den här klassmedlemmen representerar en kolumn som är eller är en del av tabellens primära nycklar. |
IsVersion | Booleskt | false |
Identifierar kolumntypen för medlemmen som en databastidsstämpel eller versionsnummer. |
UpdateCheck | UpdateCheck | Always , såvida inte IsVersion är true för en medlem |
Anger hur LINQ till SQL närmar sig identifiering av optimistiska samtidighetskonflikter. |
Mer information finns i ColumnAttribute.
Kommentar
Egenskapsvärdena AssociationAttribute och ColumnAttribute Storage är skiftlägeskänsliga. Kontrollera till exempel att värden som används i attributet för egenskapen AssociationAttribute.Storage matchar fallet för motsvarande egenskapsnamn som används någon annanstans i koden. Detta gäller för alla .NET-programmeringsspråk, även de som vanligtvis inte är skiftlägeskänsliga, inklusive Visual Basic. Mer information om egenskapen Storage finns i DataAttribute.Storage.
AssociationAttribute-attribut
Använd det här attributet för att ange en egenskap som representerar en association i databasen, till exempel en sekundärnyckel till primärnyckelrelation. Mer information om relationer finns i Så här: Mappa databasrelationer.
I följande tabell beskrivs egenskaperna för det här attributet.
Property | Type | Standardvärde | beskrivning |
---|---|---|---|
DeleteOnNull | Booleskt | false |
När objektet placeras i en association vars sekundärnyckelmedlemmar alla inte kan null-värdet tas bort när associationen är inställd på null. |
DeleteRule | String | Ingen | Lägger till borttagningsbeteende i en association. |
IsForeignKey | Booleskt | false |
Om sant, anger medlemmen som sekundärnyckel i en association som representerar en databasrelation. |
IsUnique | Booleskt | false |
Om sant indikerar en unikhetsbegränsning för sekundärnyckeln. |
OtherKey | String | ID för den relaterade klassen | Anger en eller flera medlemmar i målentitetsklassen som nyckelvärden på andra sidan associationen. |
ThisKey | String | ID för den innehållande klassen | Anger medlemmar i den här entitetsklassen som representerar nyckelvärdena på den här sidan av associationen. |
Mer information finns i AssociationAttribute.
Kommentar
Egenskapsvärdena AssociationAttribute och ColumnAttribute Storage är skiftlägeskänsliga. Kontrollera till exempel att värden som används i attributet för egenskapen AssociationAttribute.Storage matchar fallet för motsvarande egenskapsnamn som används någon annanstans i koden. Detta gäller för alla .NET-programmeringsspråk, även de som vanligtvis inte är skiftlägeskänsliga, inklusive Visual Basic. Mer information om egenskapen Storage finns i DataAttribute.Storage.
InheritanceMappingAttribute-attribut
Använd det här attributet för att mappa en arvshierarki.
I följande tabell beskrivs egenskaperna för det här attributet.
Property | Type | Standardvärde | beskrivning |
---|---|---|---|
Code | String | Inga. Värdet måste anges. | Anger kodvärdet för diskriminatorn. |
IsDefault | Booleskt | false |
Om sant instansierar ett objekt av den här typen när inget diskriminerande värde i arkivet matchar något av de angivna värdena. |
Type | Typ | Inga. Värdet måste anges. | Anger klassens typ i hierarkin. |
Mer information finns i InheritanceMappingAttribute.
FunctionAttribute-attribut
Använd det här attributet för att ange en metod som representerar en lagrad procedur eller användardefinierad funktion i databasen.
I följande tabell beskrivs egenskaperna för det här attributet.
Property | Type | Standardvärde | beskrivning |
---|---|---|---|
IsComposable | Booleskt | false |
Om det är falskt anger det mappning till en lagrad procedur. Om sant anger mappning till en användardefinierad funktion. |
Name | String | Samma sträng som namnet i databasen | Anger namnet på den lagrade proceduren eller den användardefinierade funktionen. |
Mer information finns i FunctionAttribute.
ParameterAttribute-attribut
Använd det här attributet för att mappa indataparametrar på metoder för lagrad procedur.
I följande tabell beskrivs egenskaperna för det här attributet.
Property | Type | Standardvärde | beskrivning |
---|---|---|---|
DbType | String | Ingen | Anger databastyp. |
Name | String | Samma sträng som parameternamnet i databasen | Anger ett namn på parametern. |
Mer information finns i ParameterAttribute.
ResultTypeAttribute-attribut
Använd det här attributet för att ange en resultattyp.
I följande tabell beskrivs egenskaperna för det här attributet.
Property | Type | Standardvärde | beskrivning |
---|---|---|---|
Type | Typ | (Ingen) | Används på metoder som mappats till lagrade procedurer som returnerar IMultipleResults. Deklarerar giltiga eller förväntade typmappningar för den lagrade proceduren. |
Mer information finns i ResultTypeAttribute.
DataAttribute-attribut
Använd det här attributet för att ange namn och privata lagringsfält.
I följande tabell beskrivs egenskaperna för det här attributet.
Property | Type | Standardvärde | beskrivning |
---|---|---|---|
Name | String | Samma som namnet i databasen | Anger namnet på tabellen, kolumnen och så vidare. |
Storage | String | Offentliga accessorer | Anger namnet på det underliggande lagringsfältet. |
Mer information finns i DataAttribute.