0

我在我的项目中使用 Entity Framework 5。我想测试一些新的功能。

发生的事情是,即使我的数据库已更新,(当我添加迁移时,它不会添加任何其他内容)并且即使我运行我的项目,它也运行得很好。当我尝试使用 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

你们有人有这个问题吗?如果是这样,我该如何解决?

4

1 回答 1

2

好吧,我原来的答案被删除了,猜是因为它不是一个真正的答案,而是我有同样问题的陈述。在这一点上,我找到了各种各样的答案,所以也许这个答案会通过。

当然,我只是假设我们遇到了同样的问题,但看起来很有可能,因为症状完全相同。我发现我的存储库的连接字符串没有正确设置,即使我使用 MyTestProject.dll.config 命名约定在配置文件中“正确”设置了它。似乎 NUnit 出于某种原因没有使用配置中的连接字符串。

我已经设置了一个临时解决方案,在其中我使用不同的构造函数,在为 NUnit 创建存储库时强制为我的存储库提供正确的连接字符串。很容易实现这一点,因为我使用 DI 创建存储库,并且只需要在测试时向工厂询问不同的风格。现在正在努力弄清楚为什么 NUnit 不使用配置文件,因为它看起来应该。

也许不是一个完整的答案,但至少这个解决方案让我回到了我可以测试的地方......我们会看看这个是否被删除。

于 2012-11-08T17:54:34.707 回答