我正在使用EF5
并Code First
创建数据库。当实体有 时Id field
,EF 在数据库中创建这样的字段Primary Key
并设置Identity specification
为true
(自动生成的值)。如何设置Identity specification to false by default
?
问问题
9996 次
1 回答
26
如果您不想使用身份密钥,您有多种选择。
选项 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);
}
}
于 2013-02-12T10:20:05.623 回答