我在我的项目中使用Entity Framework 5。我想测试一些新的功能。
发生了什么事情,尽管我的数据库是UPDATED,(当我添加迁移时它不会添加任何其他东西)和尽管如果我运行我的项目它运行得很好。当我尝试使用NUNIT测试项目时,我得到了这个例外:
System.InvalidOperationException : The model backing the 'DbContext' context has changed since the database was created. Consider using Code First Migrations to update the database
你们有没有这个问题?如果是这样我怎么解决呢?
答案 0 :(得分:2)
好吧,我的原始答案被删除了,因为它不是一个真正的答案,就像我有同样问题的声明一样。在这一点上,我找到了各种各样的答案,所以也许这个会通过集合。
当然,我只假设我们遇到了同样的问题,但似乎很可能因为症状完全相同。我发现我的存储库的连接字符串没有正确设置,即使我使用MyTestProject.dll.config命名约定在配置文件中“正确”设置了它。似乎NUnit由于某种原因未使用配置中的连接字符串。
我已经设置了一个临时解决方案,我使用不同的构造函数,在为NUnit创建存储库时强制为我的存储库创建正确的连接字符串。很容易实现这个,因为我使用DI来创建存储库,只需要在测试时询问工厂的不同风味。现在正在努力找出NUnit为什么不应该使用配置文件的原因。
也许不是一个完整的答案,但至少这个解决方案让我回到了我可以测试的地方......我们会看看这个是否会被删除。