【发布时间】:2017-03-18 16:27:58
【问题描述】:
我正在开发一个 ASP.NET MVC Web 应用程序,首先使用代码和实体框架。
我面临的问题是,我使用数据迁移重命名了几个表,显然一切正常,我什至看到数据库中的表名已更新。
但是当我创建一个新的数据迁移时,它总是采用表的原始名称(xxxxes),而不是最新的(xxxxs),我必须手动更改迁移脚本以避免错误:
找不到对象“dbo.xxxxs”,因为它不存在或您没有权限。
更糟糕的是,索引控制器现在失败了,因为它在尝试 ToList() 方法时会抛出以下错误:
EntityFramework.SqlServer.dll 中出现“System.Data.Entity.Core.EntityCommandExecutionException”类型的异常,但未在用户代码中处理 附加信息:执行命令定义时出错。有关详细信息,请参阅内部异常。
内在细节:
{"无效的对象名称'dbo.xxxxs'。"}
我查看了整个项目,试图找到仍然使用原始名称引用这些表的地方,但我什么也没找到。
知道如何解决这个问题吗?
编辑
我所做的,也许这就是一切都失败的地方,就是创建一个这样的数据迁移并运行它。
public partial class Update5 : DbMigration
{
public override void Up()
{
RenameTable("xxxxes", "xxxxs");
}
public override void Down()
{
}
}
我已经看到 Down() 方法应该有相反的动作,我没有添加......
【问题讨论】:
-
所以你只是把名字从'model' + 'es' 改成了'model' + 's'?可能与pluralization有关。
-
@SteveGreene 我已经用更多细节更新了我的问题...
标签: asp.net-mvc entity-framework ef-code-first