2013-02-12 3 views

ответ

19

Если вы не хотите использовать ключи идентификации, у вас есть несколько вариантов.

Вариант 1: Вы можете глобально отключить эту функцию, удаляя StoreGeneratedIdentityKeyConvention:

public class YourContext : DbContext { 
    protected override void OnModelCreating(DbModelBuilder modelBuilder) { 
     modelBuilder.Conventions.Remove<StoreGeneratedIdentityKeyConvention>(); 
    } 
} 

Вы можете выборочно выбрать ключи и изменить поведение для них либо применения атрибута или беглого отображения.

Вариант 2: Атрибут:

public class MyEntity { 
    [DatabaseGenerated(DatabaseGeneratedOption.None)] 
    public int Id { get; set; }   
} 

Вариант 3: свободный API:

public class YourContext : DbContext { 
    protected override void OnModelCreating(DbModelBuilder modelBuilder) { 
     modelBuilder.Entity<MyEntity>() 
        .Property(e => e.Id) 
        .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None); 
    } 
}