Поделиться через


Сопоставление Attribute-Based

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 свойство, как описано в следующей таблице.

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

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

Атрибут TableAttribute

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

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

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

Атрибут "ColumnAttribute"

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

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

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

Недвижимость Тип По умолчанию Описание
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, если IsVersiontrue для члена Указывает, какой подход использует LINQ to SQL для обнаружения конфликтов оптимистического параллелизма.

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

Замечание

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

Атрибут AssociationAttribute атрибут

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

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

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

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

Замечание

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

Атрибут InheritanceMappingAttribute

Используйте этот атрибут для сопоставления иерархии наследования.

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

Недвижимость Тип По умолчанию Описание
Code Струна Нет. Необходимо указать значение. Указывает значение кода дискриминационного объекта.
IsDefault Булев тип false Если значение true, создает экземпляр объекта этого типа, когда ни одно значение дискриминатора в хранилище не совпадает с любым из указанных значений.
Type Тип Нет. Необходимо указать значение. Указывает тип класса в иерархии.

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

Атрибут функции FunctionAttribute

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

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

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

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

Атрибут ParameterAttribute

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

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

Недвижимость Тип По умолчанию Описание
DbType Струна Отсутствует Указывает тип базы данных.
Name Струна Та же строка, что и имя параметра в базе данных Задает имя параметра.

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

Атрибут ResultTypeAttribute

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

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

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

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

Атрибут "DataAttribute"

Используйте этот атрибут для указания имен и полей частного хранилища.

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

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

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

См. также