Сопоставление, основанное на атрибутах

LINQ to SQL сопоставляет базу данных SQL Server с объектной моделью LINQ to SQL, применяя атрибуты или используя внешний файл сопоставления. В этом разделе представлен подход на основе атрибутов.

В самой простой форме LINQ to SQL сопоставляет базу данных DataContextс таблицей с классом, столбцами и связями со свойствами этих классов. Атрибуты также можно использовать для сопоставления иерархии наследования в объектной модели. Дополнительные сведения см. в статье "Практическое руководство. Создание объектной модели в Visual Basic или C#".

Разработчики, использующие Visual Studio, обычно выполняют сопоставление на основе атрибутов с помощью реляционный конструктор объектов. Можно также использовать программу командной строки SQLMetal или вручную написать код атрибутов самостоятельно. Дополнительные сведения см. в статье "Практическое руководство. Создание объектной модели в Visual Basic или C#".

Примечание.

Сопоставление можно также выполнять с помощью внешнего файла XML. Дополнительные сведения см. в разделе "Внешнее сопоставление".

В следующих разделах представлено более подробное описание сопоставления на основе атрибутов. Дополнительные сведения см. в описании пространства имен System.Data.Linq.Mapping.

Атрибут DatabaseAttribute

Этот атрибут используется для указания имени базы данных по умолчанию, если оно не предоставлено при подключении. Данный атрибут является необязательным, однако если он используется, следует применить свойство Name, как описано в следующей таблице.

Свойство Тип По умолчанию. Description
Name Строка См. раздел Name. Используется со свойством Name, указывает имя базы данных.

Дополнительные сведения см. в разделе DatabaseAttribute.

Атрибут TableAttribute

Чтобы определить класс как класс сущности, связанный с таблицей базы данных или представлением, используется атрибут. LINQ to SQL обрабатывает классы, имеющие этот атрибут как постоянные классы. В следующей таблице приводится описание свойства Name.

Свойство Тип По умолчанию. Description
Name Строка Строка, соответствующая имени класса Определяет класс как класс сущности, связанный с таблицей базы данных.

Дополнительные сведения см. в разделе TableAttribute.

Атрибут ColumnAttribute

Этот атрибут используется для назначения члена класса сущности, представляющего столбец в таблице базы данных. Этот атрибут можно применять к любому полю или свойству.

Только те элементы, которые вы определяете как столбцы, извлекаются и сохраняются при сохранении LINQ to SQL изменений в базе данных. Члены без данного атрибута считаются непостоянными и не передаются для вставок или обновлений.

В следующей таблице представлено описание свойств этого атрибута.

Свойство Тип По умолчанию. Description
AutoSync AutoSync Никогда Указывает среде CLR на необходимость получить значение после выполнения операции вставки или обновления.

Параметры: Always, Never, OnUpdate, OnInsert.
CanBeNull Логический true Указывает, что столбец может содержать значения NULL.
DbType Строка Определенный тип столбца базы данных Для указания типа столбца базы данных использует типы и модификаторы базы данных.
Expression Строка Нет значения Определяет вычисляемый столбец в базе данных.
IsDbGenerated Логический false Указывает, что столбец содержит значения, автоматически генерируемые базой данных.
IsDiscriminator Логический false Указывает, что столбец содержит дискриминационные значения иерархии наследования LINQ to SQL.
IsPrimaryKey Логический false Указывает, что этот член класса представляет столбец, входящий в состав первичных ключей таблицы.
IsVersion Логический false Определяет тип столбца члена как метка времени или номер версии в базе данных.
UpdateCheck UpdateCheck Always, до тех пор, пока IsVersion имеет значение true для члена Указывает, как LINQ to SQL подходит к обнаружению конфликтов оптимистического параллелизма.

Дополнительные сведения см. в разделе ColumnAttribute.

Примечание.

В значениях свойства Storage для атрибутов AssociationAttribute и ColumnAttribute учитывается регистр. Например, следует убедиться в том, что регистр символов в значении, использованном в атрибуте свойства AssociationAttribute.Storage, соответствует регистру символов в соответствующих именах свойств в остальном коде. Это относится ко всем языкам программирования .NET, даже тем, которые обычно не учитывает регистр, включая Visual Basic. Дополнительные сведения о свойстве Storage см. в разделе DataAttribute.Storage.

Атрибут AssociationAttribute

Применяйте этот атрибут для указания свойства, которое будет представлять связь в базе данных, такую как отношение внешнего и первичного ключей. Дополнительные сведения о связях см. в разделе "Практическое руководство. Сопоставление связей базы данных".

В следующей таблице представлено описание свойств этого атрибута.

Свойство Тип По умолчанию. Description
DeleteOnNull Boolean false При задании данного свойства для ассоциации, в которой члены внешнего ключа не поддерживают значение NULL, удаляет объект при установке ассоциации значения NULL.
DeleteRule Строка нет Добавляет в ассоциацию поведение удаления.
IsForeignKey Логический false При значении "true" назначает член в качестве внешнего ключа в ассоциации, представляющей отношение базы данных.
IsUnique Логический false При значении «true» указывает ограничение уникальности для первичного ключа.
OtherKey Строка Идентификатор связанного класса Назначает один или более членов целевого класса сущности в качестве ключевых значений на другой стороне ассоциации.
ThisKey Строка Идентификатор содержащего класса Назначает элементы данного класса сущности, которые будут представлять ключевые значения на этой стороне ассоциации.

Дополнительные сведения см. в разделе AssociationAttribute.

Примечание.

В значениях свойства Storage для атрибутов AssociationAttribute и ColumnAttribute учитывается регистр. Например, следует убедиться в том, что регистр символов в значении, использованном в атрибуте свойства AssociationAttribute.Storage, соответствует регистру символов в соответствующих именах свойств в остальном коде. Это относится ко всем языкам программирования .NET, даже тем, которые обычно не учитывает регистр, включая Visual Basic. Дополнительные сведения о свойстве Storage см. в разделе DataAttribute.Storage.

Атрибут InheritanceMappingAttribute

Применяйте этот атрибут для сопоставления иерархии наследования.

В следующей таблице представлено описание свойств этого атрибута.

Свойство Тип По умолчанию. Description
Code Строка Нет. Необходимо предоставить значение. Указывает значение кода дискриминатора.
IsDefault Логический false При значении "true" создает объект данного типа, когда значение дискриминатора в хранилище не соответствует ни одному заданному значению.
Type Тип Нет. Необходимо предоставить значение. Указывает тип класса в иерархии.

Дополнительные сведения см. в разделе InheritanceMappingAttribute.

Атрибут FunctionAttribute

Этот атрибут используется для назначения метода, представляющего хранимую процедуру или пользовательской функцию в базе данных.

В следующей таблице представлено описание свойств этого атрибута.

Свойство Тип По умолчанию. Description
IsComposable Boolean false Если значение равно false, указывает сопоставление с хранимой процедурой. При значении «true» указывает сопоставление с пользовательской функцией.
Name Строка Строка, соответствующая имени базы данных Указывает имя хранимой процедуры или пользовательской функции.

Дополнительные сведения см. в разделе FunctionAttribute.

Атрибут ParameterAttribute

Этот атрибут используется для сопоставления входных параметров в методах хранимых процедур.

В следующей таблице представлено описание свойств этого атрибута.

Свойство Тип По умолчанию. Description
DbType Строка нет Указывает тип базы данных.
Name Строка Строка, соответствующая имени параметра в базе данных Указывает имя для параметра.

Дополнительные сведения см. в разделе ParameterAttribute.

Атрибут ResultTypeAttribute

Этот атрибут используется для указания типа результата.

В следующей таблице представлено описание свойств этого атрибута.

Свойство Тип По умолчанию. Описание
Type Тип (Нет) Используется в методах, сопоставленных с хранимыми процедурами, возвращающих IMultipleResults. Объявляет допустимые или ожидаемые сопоставления типов для хранимых процедур.

Дополнительные сведения см. в разделе ResultTypeAttribute.

Атрибут DataAttribute

Этот атрибут используется для указания имен и закрытых полей хранения.

В следующей таблице представлено описание свойств этого атрибута.

Свойство Тип По умолчанию. Description
Name Строка Строка, соответствующая имени базы данных Указывает имя таблицы, столбца и т. д.
Storage Строка Открытые методы доступа Указывает имя базового поля хранения.

Дополнительные сведения см. в разделе DataAttribute.

См. также