使用存储库和工作模式单元(重新访问)...在EF Core与ASP.NET Core

时间:2018-02-19 21:40:58

标签: entity-framework asp.net-core .net-core

我正在关注使用ASP.NET Core的EF Core的this tutorial。有趣的是,本文指出,使用存储库和工作单元模式并不总是使用EF'的应用程序的最佳选择,但在EF 5的教程中使用存储库和单元即使有一个单独的教程部分,工作模式仍然会得到提升。

在stackoverflow上读取old articles,据报道,应用它的原因主要是测试(依赖注入)。

在turial中进一步阅读,提到“实体框架核心”实现了一个内存数据库提供程序,可用于测试'。我认为这是EF5时尚未出现的新功能。这是否意味着几乎没有任何理由在EF Core和ASP.NET Core中应用存储库和工作单元模式?

1 个答案:

答案 0 :(得分:11)

为什么这里有如此多的混乱,有很多原因和悠久的历史。 EF的DbContext过去没有实现接口,所以它使得模拟很难用于测试目的。但是,这在EF 6中得到了纠正,因此从那时起,即使是出于测试目的,在使用存储库/工作模式单元方面也绝对没有任何好处。

EF Core是完全可测试的端到端,并且现在也有一个内存数据库提供程序,这意味着你甚至不需要模拟它,尽管如果你愿意,你可以非常好。

长短,转储存储库和工作单元格。即使他们有一些用于测试的东西,它们也从来都不是一个好的解决方案,而且从EF 6开始,它们完全没用。

现在......让火焰战开始吧。