EF Effort - 使用内存数据库时,不正确的密钥限制了未发生的错误

时间:2018-06-07 11:14:29

标签: entity-framework unit-testing ef-code-first effort

我使用Effort作为EntityFramework内存数据库提供程序 我正在使用EF代码优先方法,所以希望能够测试我的数据库是否一切正常,即实体类是否具有正确定义的所有导航属性等。

我添加了一个不正确的约束,并期望在我的测试中看到错误:

  

在表'UsageSummaries'上引入FOREIGN KEY约束'FK_dbo.UsageSummaries_dbo.Programs_ProgramId'可能会导致循环或多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。   无法创建约束或索引。查看以前的错误。

然而,这没有发生,所有我在内存数据库中的测试都通过了OK - 然后我在初始化实际数据库后立即得到了错误。

这就是我初始化内存数据库的方式:

enter image description here

如果我不使用Effort DbConnectionFactory中的this.connection,我也可以在我的测试方法中得到正确的错误。

如何让Effort内存数据库丢失这些错误?
为什么他们不会默认发生? 更广泛地说,有没有更好的方法来验证代码优先的数据库有效性?

0 个答案:

没有答案