我正在尝试使用实体框架代码优先方法连接到 SQL Azure 联合。当我尝试写入联合表时,EF 抛出一个错误,提示“数据库中已经有一个名为 [pluralized table name] 的对象”
我收到此错误是因为我在运行应用程序代码之前创建了联合表。如果我删除表,那么 EF 将为我创建它们而不会引发异常,但这次它们不会被联合。它们将是参考表。
我该如何解决这个问题?我可以先阻止 EF 代码尝试创建表吗?
我正在尝试使用实体框架代码优先方法连接到 SQL Azure 联合。当我尝试写入联合表时,EF 抛出一个错误,提示“数据库中已经有一个名为 [pluralized table name] 的对象”
我收到此错误是因为我在运行应用程序代码之前创建了联合表。如果我删除表,那么 EF 将为我创建它们而不会引发异常,但这次它们不会被联合。它们将是参考表。
我该如何解决这个问题?我可以先阻止 EF 代码尝试创建表吗?
自己找到了答案。
class CreateDatabaseIfNotExists<TContext> : IDatabaseInitializer<TContext> where TContext : DbContext
{
public void InitializeDatabase(TContext context)
{
}
}
我在我的 DBContext 类中这样称呼它:
static EVENTContext()
{
Database.SetInitializer(new CreateDatabaseIfNotExists<EVENTContext>());
}