TDD:EF Core In Memory Provider 是否验证引用约束?

Abh*_*eet 5 c# tdd unit-testing entity-framework-core ef-core-2.0

我对 EF Core 用于单元测试的内存功能感到非常兴奋。它减轻了我编写专用存储库的负担,只是为了使代码单元可测试。但仅仅在集合中进行内存测试是不够的。

EF Core In Memory Provider 是否验证引用约束?

Cod*_*und 5

EF Core In Memory Provider 是否验证引用约束?

答案是不。

InMemory提供程序不能替代关系数据库。它是为测试目的而创建的。

文档摘录:

InMemory被设计为用于测试的通用数据库,而不是为了模仿关系数据库而设计的。这方面的一些例子包括:

  • InMemory将允许您保存在关系数据库中违反参照完整性约束的数据。

  • 如果您DefaultValueSql(string)在模型中使用for 属性,则这是一个关系数据库 API,在针对InMemory运行时将不起作用。

提供者未验证任何约束的第一个点。