Linq to SQL - возможно генерировать ограничение уникального ключа для БД через атрибут сущности - PullRequest
0 голосов
/ 25 апреля 2011

В Linq to Sql, есть ли способ определить атрибуты объекта, которые указывают, что он должен быть уникальным (и также будет генерировать уникальное ограничение в базе данных при создании базы данных)

Примечание. Я хочу создать ограничение уникального ключа, а не другой первичный ключ для моей сущности)

т.е. Я хотел бы иметь атрибут в свойстве Description, указывающий, что он должен быть уникальным в соответствии с нашими бизнес-правилами.

[Table(Name = "ProductCategory")]
public class ProductCategory
{
    // Generate a primary key
    [Column(IsPrimaryKey = true, IsDbGenerated = true, AutoSync = AutoSync.OnInsert, Name="ProductCategoryId")]
    public int ProductCategoryId { get; set; }

    [Column(CanBeNull = false, ATTRIBUTE TO GENERATE UNIQUE CONSTRAINT FOR THIS PROPERTY/COLUMN]
    public string Description { get; set; }

    [Column(CanBeNull = false)]
    public DateTime CreatedDate { get; set; }

    [Column(CanBeNull = true)]
    public DateTime? ModifiedDate { get; set; }
}

1 Ответ

0 голосов
/ 26 апреля 2011

Linq-To-SQL (как и Entity Framework) не поддерживает уникальные ключи, и поэтому нет аннотации, которая бы гарантировала, что уникальное ограничение будет сгенерировано для вас в базе данных. Вы всегда должны добавлять уникальные ограничения / индексы с некоторым сценарием после развертывания.

...