我使用Effort作为EntityFramework内存数据库提供程序 我正在使用EF代码优先方法,所以希望能够测试我的数据库是否一切正常,即实体类是否具有正确定义的所有导航属性等。
我添加了一个不正确的约束,并期望在我的测试中看到错误:
在表'UsageSummaries'上引入FOREIGN KEY约束'FK_dbo.UsageSummaries_dbo.Programs_ProgramId'可能会导致循环或多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。 无法创建约束或索引。查看以前的错误。
然而,这没有发生,所有我在内存数据库中的测试都通过了OK - 然后我在初始化实际数据库后立即得到了错误。
这就是我初始化内存数据库的方式:
如果我不使用Effort DbConnectionFactory中的this.connection
,我也可以在我的测试方法中得到正确的错误。
如何让Effort内存数据库丢失这些错误?
为什么他们不会默认发生?
更广泛地说,有没有更好的方法来验证代码优先的数据库有效性?