【发布时间】:2016-06-06 23:23:21
【问题描述】:
我正在使用 MVC5 和 EF6。我正在做代码优先的方法。我有一些需要使用迁移(工作)生成的表和一些我需要从现有数据库中使用的表 - 表。
在我的 DbContext 类中
'new table that is created in the DB (works)
public DbSet<Subscription> Subscriptions { get; set; }
public DbSet<Memeber> Members { get; set; }
'existing table.
public DbSet<CodeTable> CodeTable { get; set; }
在配置-(迁移文件夹)中
public Configuration()
{
AutomaticMigrationsEnabled = true;
}
它现在做了什么,它创建了一个名为 CodeTables 的新表
- 变成复数了,这是为什么呢?- 可以关掉吗?
- 如何使用CodeTable而不生成新表?
- 当我手动删除使用 codefirst 生成的表时,即成员表。然后我运行
Update-Database -Verbose -Force(什么都不做)
使用启动项目“测试”。
使用 NuGet 项目“测试”。
指定“-Verbose”标志以查看应用于目标数据库的 SQL 语句。
目标数据库是:'TESTDB'(数据源:10.10.50.89,提供者:
System.Data.SqlClient,来源:配置)。
没有待处理的显式迁移。
运行种子方法。
然后运行应用程序,我得到一个异常
System.Data.SqlClient.SqlException (0x80131904):无效的对象名称“dbo.Members”。在 System.Data.SqlClient.SqlConnection.OnError(SqlException 异常
因为找不到表。没有生成表。
如果找不到表,我如何让它知道。创建它?
我注意到如果我删除 __MigrationHistory 然后运行更新数据库。然后它抱怨我存在的其他表
数据库中已经有一个名为“订阅”的对象。
只有在我删除所有表格时它才有效。但这似乎很愚蠢,删除所有表。我希望有另一种方法。
【问题讨论】:
标签: asp.net-mvc entity-framework ef-code-first entity-framework-6 entity-framework-migrations