Entity FrameWork Code First атрибут альтернативного ключа

311
21 января 2017, 09:30

Доброго времени суток, хочу в бд для полей задать составной альтернативный ключ, как это можно провернуть через атрибуты Entity Framework? Есть еще мысль попробовать через миграцию, но предпочтителен через атрибуты, поиск не дал наличия такого атрибута, может плохо искал?

ps. EF6, .Net, C#, code first

Answer 1

В документации от Microsoft сказано:

Alternate keys can not be configured using Data Annotations.

Перевод от меня:

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

Поскольку Вы используете Code-First, то рекомендую попробовать Fluent API.

Приведу пример по настройке одного свойства с помощью Fluent API^

class MyContext : DbContext
{
    public DbSet<Car> Cars { get; set; }
    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Car>()
            .HasAlternateKey(c => c.LicensePlate);
    }
}
class Car
{
    public int CarId { get; set; }
    public string LicensePlate { get; set; }
    public string Make { get; set; }
    public string Model { get; set; }
}

Полный список атрибутов поддерживаемых EF:

  • KeyAttribute
  • StringLengthAttribute
  • MaxLengthAttribute
  • ConcurrencyCheckAttribute
  • RequiredAttribute
  • TimestampAttribute
  • ComplexTypeAttribute
  • ColumnAttribute
  • TableAttribute
  • InversePropertyAttribute
  • ForeignKeyAttribute
  • DatabaseGeneratedAttribute
  • NotMappedAttribute
READ ALSO
Как отправить get запрос на url c ЧПУ

Как отправить get запрос на url c ЧПУ

Мне нужно отправить get запрос на URL testru/stop/search/{название}, так же на test

416
PHP Soap передать и получить массив

PHP Soap передать и получить массив

Каким наиболее простым образом можно отправить и получить массив при помощи SOAP?

395