在 EF Code First 中使用视图与迁移冲突

Consuming View in EF Code First conflicts with migration

我的数据库中有一个 Table“IncomingChecks”。我首先使用 EF 代码创建了它。现在,我使用 Sql Server Management Studio 添加了一个基于此 table 名为“ViewIncomingChecks”的数据库的视图,我想使用 Entity Framework 在我的应用程序中使用它的数据。 我复制了模型 class 并更改了它的名称并将其添加到上下文中:

public class ViewIncomingCheck
{
    [Key]
    public int Id { get; set; }
     //...
}

public class CheckDataContext : DbContext
{
    public virtual DbSet<ViewIncomingCheck> ViewIncomingChecks { get; set; }
    //...
}

现在,当我 运行 应用程序时,它会抛出异常,指出数据库上下文已更改,需要迁移。我什至尝试添加迁移(这似乎是错误的选项),当我添加迁移时,它说对象 ViewIncomingChecks 已经在数据库中。

如何在我的代码中使用这个视图?

编辑

我目前的解决方案是为视图提供另一个上下文。这样它就不会与 EF 迁移冲突。这是最好的选择还是有更好的方法来处理它。

根据我在项目中所做的:

  • 首先将 public virtual DbSet<ViewIncomingCheck> ViewIncomingChecks { get; set; } 添加到您的 DbConext

  • 现在创建一个名为 ViewDbSetAdded

  • 的迁移
  • UpDown 方法中删除所有代码,它将如下所示:

迁移代码:

public partial class ViewDbSetAdded : DbMigration
{
    public override void Up()
    {

    }

    public override void Down()
    {

    }
}
  • 现在 运行 update-database 命令,它将 运行 一个空迁移。