如何为Entity Framework 5关闭复数表创建?

我正在尝试使用Entity Framework 5.第一个问题是EF自动创建表。 我尝试通过包含dbModelBuilder.Conventions.Remove()来修复它。 第二个问题是像这样的错误

自创建数据库以来,支持“CountryContext”上下文的模型已更改。 考虑使用Code First Migrations来更新数据库。

我尝试通过dbModelBuilder.Conventions.Remove();修改它dbModelBuilder.Conventions.Remove(); 但没有意义。 下一个数据访问层:

 Table(Name = "tblCountries")] public class Country { [Column(Name = "id", IsDbGenerated = true, IsPrimaryKey = true)] public int Id {get;set;} [Column(Name = "name")] public string Name {get;set;} } public class CountryContext:DbContext { public CountryContext(string connStr):base(connStr) { } public DbSet TblCountries { get; set; } protected override void OnModelCreating(DbModelBuilder dbModelBuilder) { dbModelBuilder.Conventions.Remove(); dbModelBuilder.Conventions.Remove(); } } public class CountryDal:BaseDal { public int CheckIsExist(Country country) { int id = 0; using (var context = new CountryContext(ConnectionString)) { var first = context.TblCountries.FirstOrDefault(el => el.Name == country.Name); if (first != null) { id = first.Id; } } return id; } } 

附加信息:VS 2012,框架4.5,entity framework5.0.0.0对于EF 4,它工作正常(没有OnModelCreating方法)。

您可以在OnModelCreating方法中编写此代码:

 modelBuilder.Conventions.Remove(); 

如果您不希望EF创建表并管理模型和数据库之间的一致性,请在应用程序启动时使用它:

 Database.SetInitializer(null); 

在EF 6.0中使用LINQ:

 protected override void OnModelCreating(DbModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); var conventions = new List().ToArray(); modelBuilder.Conventions.Remove(conventions); }