在数据库表上使用代码优先实体框架的无效对象名称

时间:2019-03-07 14:09:48

标签: c# asp.net-mvc ef-code-first ef-migrations

我正在使用Entity Framework代码优先迁移。我创建了一个迁移来更改数据库中表的名称:

public partial class ChangeNameOfCodePerformanceAnchorTable : DbMigration
{
    public override void Up()
    {
        RenameTable(name: "dbo.Code_PerformanceAnchor", newName: "CodePerformanceAnchor");
    }

    public override void Down()
    {
        RenameTable(name: "dbo.CodePerformanceAnchors", newName: "Code_PerformanceAnchor");
    }
}

现在,当我为该表创建控制器时。在Index动作中,我有以下内容:

public ActionResult Index()
{
    return View(db.CodePerformanceAnchor.Include(c => c.CodePhase).ToList());
}

运行应用程序以转到该特定索引页面时,出现此错误:

  

无效的对象名称'dbo.CodePerformanceAnchors'。

     

描述:在执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中起源的更多信息。

     

异常详细信息:System.Data.SqlClient.SqlException:无效的对象名称'dbo.CodePerformanceAnchors'。

在我的应用程序中唯一被称为CodePerformanceAnchors的是控制器。该模型为CodePerformanceAnchor

public virtual DbSet<CodePerformanceAnchor> CodePerformanceAnchor { get; set; }

对于解决此错误的任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:0)

您有2个表格名称:

CodePerformanceAnchor

CodePerformanceAnchors(末尾为s)

您还可以选中this(可插拔约定)或this(指定表名)