1
我正在使用迁移,但我不得不手动添加SQL视图,因为它从其他表中不会映射到我的上下文/存储库中的表中。使用实体框架进行SQL查看5代码优先迁移
但是,现在它认为上下文已经改变。我看到this answer问同样的问题,但它不能解决问题。我不能只从现有实体创建视图模型。
还有别的办法吗?我不介意使用SqlQuery,如果我可以这样的:
context.Database.SqlQuery<ContactsByPartyCampaignViewModel>("myView")
我是否需要删除迁移? Application_Start()
下的Global.asax Database.SetInitializer<MyDbContext>(null);
将解决你的问题:
谢谢,我现在只是使用控制台应用程序和测试项目,所以我没有global.asax文件。我把它放在模型构建器覆盖中,并且工作。它确实做到了这一点?它跳过寻找迁移?当我运行Add-Migration时,它仍然会启动它。 – scojomodena
如果您提到这实际上是在做什么,以便其他人可以就这是否适合他们做出明智的决定,那该多好。 – BenjaminPaul
@BenjaminPaul:我们使用它来设置'DbInitialization'策略为空,而不是让代码首先使用默认的''CreateDatabaseWhenNotExist'',或者使用其他人之一 DropCreateDatabaseWhenModelChanges“,或者甚至是基于内置策略创建的自定义策略。 您通常在应用程序启动时设置'DbInitialization'策略,例如在web应用程序的'global.asax'中,即使您将它设置为null,也会执行相同的操作。 –