我应该摆脱我的存储库并使用EF Core dbcontext工作

时间:2018-05-10 02:29:43

标签: c# entity-framework domain-driven-design entity-framework-core repository-pattern

我目前正在.NET Core中构建一个库(作为一个nuget包)来处理用户身份验证,创建,删除,然后对“guest”进行相同的操作,这些用户基本上都是不登录到系统,但记录。这将安装到多个项目中(可能在将来成为一项服务)

正如您所料,我已将事物分成2个dll(VS项目):

  • 包含1个上下文和2个存储库(用户和访客)的EF Core数据层项目。
  • 包装存储库周围方法的主库,并公开关键方法,例如: 'CreateUser','Login'等。

作为旁注,存储库彼此完全隔离,因此到目前为止还没有工作单元实现。

由于我一直在通过开发重构和改进代码,我开始怀疑实际上是否需要有2个存储库,因为我可以直接在主库中使用DBContext并执行所有操作“CreateUser”等方法

我从起诉DBContext而不是存储库中看到的好处是:

  • DBContext将是我的工作单元,所以如果我确实需要跨用户和访客进行单个原子操作,这将很容易。

  • 代码抽象会减少,因此可以简化事情(这是我能想到的主要好处)。

  • 我以后可以轻松更新我的库方法,使其更加基于命令/查询

  • 我认为它基本上会删除对我来说感觉像重复抽象(我的DBContext上的存储库)

我在网上看过很多文章,建议放弃我的存储库是有道理的,但是想知道是否有人可以看到没有这样做的任何真正的好处(对我的方法的一般反馈总是受欢迎,因为我没有之前建立了许多图书馆。

0 个答案:

没有答案