gpt4 book ai didi

c# - 存储库/UoW - 使用还是不使用?

转载 作者:太空宇宙 更新时间:2023-11-03 21:56:15 25 4
gpt4 key购买 nike

我知道这已经被做过一百万次了,但我仍然在想走哪条路:

  1. EF - UoW/存储库 - 服务 - 网络或
  2. EF - 服务 - 网络

似乎 UoW/Repository 层是多余的,因为您可以模拟 DbContext 等。这将使实现变得简单,并且使服务更接近 EF 似乎更加通用。

有人对此有什么好的建议吗?

不过,我对此有一个疑问,那就是我将使用 Ninject 进行连接。在 web 端,如果我想将 DbContext 注入(inject)到它需要引用 EF 的服务中。这似乎是错误的。

kernel.Bind<FunkySoftwareContext>().ToSelf().InRequestScope();

有什么办法可以解决这个问题吗?

最佳答案

取决于你是否想要正确的抽象。

服务层不应公开数据库实体。它应该公开适当的业务/领域模型。它们可能看起来与数据库实体完全一样,也可能不完全一样。

恕我直言,这就是存储库模式的好处。它采用业务模型表示并将其转换为数据库/orm 可以使用的东西(反之亦然)。

但是,如果您确定从 Entity 框架加载的对象是您的领域/业务模型的完美代表,那么一定要跳过存储库。

我在这里写了一篇关于此的博客文章:http://blog.gauffin.org/2012/06/protect-your-data/

关于c# - 存储库/UoW - 使用还是不使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12107190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com