我的数据库中有一个表“ IncomingChecks”。我首先使用EF代码创建了它。现在,我已经使用Sql Server Management Studio在基于该表的名为“ ViewIncomingChecks”的数据库中添加了一个视图,并且我想使用实体框架在其应用程序中使用其数据。 我复制了模型类,并更改了其名称,并将其添加到上下文中:
public class ViewIncomingCheck
{
[Key]
public int Id { get; set; }
//...
}
public class CheckDataContext : DbContext
{
public virtual DbSet<ViewIncomingCheck> ViewIncomingChecks { get; set; }
//...
}
现在,当我运行该应用程序时,它引发异常,表明数据库上下文已更改,需要迁移。我什至尝试添加一个迁移(这似乎是错误的选择),当我添加迁移时,它说对象ViewIncomingChecks
已经在数据库中。
如何在代码中使用此视图?
我当前的解决方案是为视图提供另一个上下文。这样就不会与EF迁移冲突。这是最好的选择还是有更好的方法来处理它。
答案 0 :(得分:1)
根据我在项目中所做的事情:
首先将public virtual DbSet<ViewIncomingCheck> ViewIncomingChecks
{ get; set; }
添加到您的DbConext
现在创建一个名为ViewDbSetAdded
从Up
和Down
方法中删除所有代码,如下所示:
迁移代码:
public partial class ViewDbSetAdded : DbMigration
{
public override void Up()
{
}
public override void Down()
{
}
}
update-database
命令,它将运行一个空迁移。