我首先使用代码,然后设置了我的环境,一切都很顺利。问题是我稍后回来并需要添加一个新类(Foo),例如。
public class NorthwindContext : DbContext
{
public DbSet<Customer> Customers { get; set; }
...
public DbSet<Foo> Foos { get; set; } // added
}
public class Foo // added
{
public string FooID { get; set; }
public int Payload { get; set; }
}
public class Customer
{
...
但是,现在每当我尝试更新服务引用时,都会收到错误消息。如果我拿出
public DbSet<Foo> Foos { get; set; }
一切顺利,但生成的代码中没有Foos。我错过了什么?
答案 0 :(得分:0)
您没有多少选择来解决此问题。删除上下文中包含的IncludeMetadataConvention
。然后手动删除数据库。
public class NorthwindContext : DbContext
{
public DbSet<Customer> Customers { get; set; }
public DbSet<Foo> Foos { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<IncludeMetadataConvention>();
base.OnModelCreating(modelBuilder);
}
}
或在程序入口点设置初始化程序。
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<NorthwindContext>());
最终选项是使用仍处于测试阶段的Code First Migrations。