Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
LINQ to SQL mapuje bazę danych programu SQL Server na model obiektów LINQ to SQL, stosując atrybuty lub używając zewnętrznego pliku mapowania. W tym temacie opisano podejście oparte na atrybutach.
W najbardziej podstawowej formie LINQ to SQL mapuje bazę danych na DataContext, tabelę na klasę, a kolumny i relacje na właściwości w tych klasach. Można również użyć atrybutów do mapowania hierarchii dziedziczenia w modelu obiektów. Aby uzyskać więcej informacji, zobacz How to: Generate the Object Model in Visual Basic or C#(Jak wygenerować model obiektów w Visual Basic lub C#).
Deweloperzy korzystający z programu Visual Studio zazwyczaj wykonują mapowanie oparte na atrybutach przy użyciu projektanta relacyjnego obiektów. Możesz również użyć narzędzia wiersza polecenia SQLMetal lub ręcznie kodować atrybuty samodzielnie. Aby uzyskać więcej informacji, zobacz How to: Generate the Object Model in Visual Basic or C#(Jak wygenerować model obiektów w Visual Basic lub C#).
Uwaga / Notatka
Można również mapować przy użyciu zewnętrznego pliku XML. Aby uzyskać więcej informacji, zobacz Mapowanie zewnętrzne.
W poniższych sekcjach opisano bardziej szczegółowo mapowanie oparte na atrybutach. Aby uzyskać więcej informacji, zajrzyj do przestrzeni nazw System.Data.Linq.Mapping.
Atrybut DatabaseAttribute
Użyj tego atrybutu, aby określić domyślną nazwę bazy danych, gdy nazwa nie jest dostarczana przez połączenie. Ten atrybut jest opcjonalny, ale jeśli go używasz, musisz zastosować Name właściwość zgodnie z opisem w poniższej tabeli.
Majątek | Typ | Wartość domyślna | Opis |
---|---|---|---|
Name | Sznurek | Zobacz Name | Używana z jej Name właściwością określa nazwę bazy danych. |
Aby uzyskać więcej informacji, zobacz DatabaseAttribute.
Atrybut TableAttribute
Użyj tego atrybutu, aby wyznaczyć klasę jako klasę jednostki skojarzona z tabelą bazy danych lub widokiem. LINQ to SQL traktuje klasy, które mają ten atrybut jako klasy trwałe. Tabela poniżej opisuje właściwość Name.
Majątek | Typ | Wartość domyślna | Opis |
---|---|---|---|
Name | Sznurek | Taki sam ciąg jak nazwa klasy | Wyznacza klasę jako klasę jednostki skojarzona z tabelą bazy danych. |
Aby uzyskać więcej informacji, zobacz TableAttribute.
Atrybut ColumnAttribute
Użyj tego atrybutu, aby wyznaczyć członka klasy encji do reprezentacji kolumny w tabeli bazy danych. Ten atrybut można zastosować do dowolnego pola lub właściwości.
Tylko te elementy członkowskie, które są identyfikowane jako kolumny, są pobierane i zapisywane, gdy LINQ to SQL zapisuje zmiany w bazie danych. Zakłada się, że członkowie bez tego atrybutu są nietrwale i nie są przesyłani do wstawiania ani aktualizacji.
W poniższej tabeli opisano właściwości tego atrybutu.
Majątek | Typ | Wartość domyślna | Opis |
---|---|---|---|
AutoSync | Autosynchronizuj | Nigdy | Instruuje środowisko uruchomieniowe języka wspólnego (CLR) o pobranie wartości po operacji wstawiania lub aktualizacji. Opcje: Zawsze, Nigdy, OnUpdate, OnInsert. |
CanBeNull | boolean | true |
Wskazuje, że kolumna może zawierać wartości null. |
DbType | Sznurek | Wnioskowany typ kolumny bazy danych | Używa typów baz danych i modyfikatorów, aby określić typ kolumny bazy danych. |
Expression | Sznurek | Pusty | Definiuje obliczoną kolumnę w bazie danych. |
IsDbGenerated | boolean | false |
Wskazuje, że kolumna zawiera wartości generowane automatycznie przez bazę danych. |
IsDiscriminator | boolean | false |
Wskazuje, że kolumna zawiera dyskryminującą wartość hierarchii dziedziczenia LINQ to SQL. |
IsPrimaryKey | boolean | false |
Określa, że ten element klasy reprezentuje kolumnę, która jest lub jest częścią klucza podstawowego tabeli. |
IsVersion | boolean | false |
Określa typ kolumny członka jako sygnaturę czasową bazy danych lub numer wersji. |
UpdateCheck | Sprawdzanie aktualizacji |
Always , chyba że IsVersion jest true dla członka |
Określa sposób podejścia LINQ to SQL do wykrywania optymistycznych konfliktów współbieżności. |
Aby uzyskać więcej informacji, zobacz ColumnAttribute.
Uwaga / Notatka
W wartościach właściwości AssociationAttribute i ColumnAttribute Storage uwzględniana jest wielkość liter. Na przykład upewnij się, że wartości używane w atrybucie właściwości AssociationAttribute.Storage odpowiadają wielkości liter odpowiednich nazw właściwości używanych w kodzie. Dotyczy to wszystkich języków programowania .NET, nawet tych, które zazwyczaj nie rozróżniają wielkości liter, w tym Visual Basic. Aby uzyskać więcej informacji na temat właściwości Storage, zobacz DataAttribute.Storage.
Atrybut AssociationAttribute
Skorzystaj z tego atrybutu, aby wyznaczyć właściwość reprezentującą skojarzenie w bazie danych, takie jak związek klucza obcego z kluczem podstawowym. Aby uzyskać więcej informacji na temat relacji, zobacz Jak mapować relacje bazy danych.
W poniższej tabeli opisano właściwości tego atrybutu.
Majątek | Typ | Wartość domyślna | Opis |
---|---|---|---|
DeleteOnNull | boolean | false |
W przypadku skojarzenia, którego składowe klucza obcego są nienullowalne, usuwa obiekt, gdy skojarzenie zostaje ustawione na null. |
DeleteRule | Sznurek | Żaden | Dodaje zachowanie usuwania do skojarzenia. |
IsForeignKey | boolean | false |
Jeśli to prawda, wyznacza członka jako klucz obcy w związku reprezentującym relację bazy danych. |
IsUnique | boolean | false |
Jeśli wartość true, wskazuje ograniczenie unikatowości klucza obcego. |
OtherKey | Sznurek | Identyfikator powiązanej klasy | Określa jednego lub więcej członków docelowej klasy jednostki jako wartości kluczowe po drugiej stronie skojarzeń. |
ThisKey | Sznurek | Identyfikator klasy zawierającej | Wyznacza członków tej klasy encji do reprezentowania wartości kluczy po tej stronie skojarzenia. |
Aby uzyskać więcej informacji, zobacz AssociationAttribute.
Uwaga / Notatka
W wartościach właściwości AssociationAttribute i ColumnAttribute Storage uwzględniana jest wielkość liter. Na przykład upewnij się, że wartości używane w atrybucie właściwości AssociationAttribute.Storage odpowiadają wielkości liter odpowiednich nazw właściwości używanych w kodzie. Dotyczy to wszystkich języków programowania .NET, nawet tych, które zazwyczaj nie rozróżniają wielkości liter, w tym Visual Basic. Aby uzyskać więcej informacji na temat właściwości Storage, zobacz DataAttribute.Storage.
Atrybut InheritanceMappingAttribute
Użyj tego atrybutu, aby mapować hierarchię dziedziczenia.
W poniższej tabeli opisano właściwości tego atrybutu.
Majątek | Typ | Wartość domyślna | Opis |
---|---|---|---|
Code | Sznurek | Żaden. Należy podać wartość. | Określa wartość kodu dyskryminującego. |
IsDefault | boolean | false |
Jeśli warunek jest spełniony, tworzone jest wystąpienie obiektu tego typu, gdy żadna wartość dyskryminująca w magazynie nie odpowiada żadnej z podanych wartości. |
Type | Typ | Żaden. Należy podać wartość. | Określa typ klasy w hierarchii. |
Aby uzyskać więcej informacji, zobacz InheritanceMappingAttribute.
Atrybut FunctionAttribute
Użyj tego atrybutu, aby wyznaczyć metodę jako reprezentującą procedurę składowaną lub funkcję zdefiniowaną przez użytkownika w bazie danych.
W poniższej tabeli opisano właściwości tego atrybutu.
Majątek | Typ | Wartość domyślna | Opis |
---|---|---|---|
IsComposable | boolean | false |
Jeśli wartość jest fałszywa, wskazuje mapowanie na procedurę składowaną. Jeśli wartość true, wskazuje mapowanie na funkcję zdefiniowaną przez użytkownika. |
Name | Sznurek | Ten sam ciąg co nazwa w bazie danych | Określa nazwę procedury składowanej lub funkcji zdefiniowanej przez użytkownika. |
Aby uzyskać więcej informacji, zobacz FunctionAttribute.
ParameterAttribute (atrybut)
Ten atrybut służy do mapowania parametrów wejściowych w metodach procedur składowanych.
W poniższej tabeli opisano właściwości tego atrybutu.
Majątek | Typ | Wartość domyślna | Opis |
---|---|---|---|
DbType | Sznurek | Żaden | Określa typ bazy danych. |
Name | Sznurek | Taki sam ciąg jak nazwa parametru w bazie danych | Określa nazwę parametru. |
Aby uzyskać więcej informacji, zobacz ParameterAttribute.
Atrybut ResultTypeAttribute
Użyj tego atrybutu, aby określić typ wyniku.
W poniższej tabeli opisano właściwości tego atrybutu.
Majątek | Typ | Wartość domyślna | Opis |
---|---|---|---|
Type | Typ | (N/A) | Używane w metodach mapowanych na procedury składowane, które zwracają IMultipleResults. Deklaruje prawidłowe lub oczekiwane mapowania typów dla procedury składowanej. |
Aby uzyskać więcej informacji, zobacz ResultTypeAttribute.
Atrybut DataAttribute
Użyj tego atrybutu, aby określić nazwy i prywatne pola pamięci.
W poniższej tabeli opisano właściwości tego atrybutu.
Majątek | Typ | Wartość domyślna | Opis |
---|---|---|---|
Name | Sznurek | Taka sama jak nazwa w bazie danych | Określa nazwę tabeli, kolumny itd. |
Storage | Sznurek | Publiczne metody dostępu | Określa nazwę bazowego pola magazynu. |
Aby uzyskać więcej informacji, zobacz DataAttribute.