gpt4 book ai didi

.net - 通用存储库。需要建议

转载 作者:行者123 更新时间:2023-12-04 23:31:01 25 4
gpt4 key购买 nike

我正在考虑走哪条路,无法决定哪条路更好。也许你可以给我一个杀手锏:)

我的问题:我有一个建立在 NHibernate 之上的通用存储库。它的界面非常简单,例如Get(object id)、Save、Delete等。有时这个界面可以正常工作,但有时却不行。例如,我项目中的几个实体有一个名为 Code 的属性(但不是全部)。我希望不仅可以通过主键,还可以通过这个属性来获取实体。另一种情况是当我需要过滤一些带有日期的实体,或者提供特定于单个实体的其他过滤标准时。目前我正在考虑以下解决方案:

  • 林奇 - 我可以从 Repository 为每种类型返回一个 IQueryable 对象,然后使用 linq 表达式过滤查询。我不喜欢这个想法,因为如果我这样做,我看不到 Repository 背后的原因。
  • 实体特定存储库 - 在这里,我可以在通用存储库之上构建一个特定的实体。它将具有诸如 Get(DateTime dateFrom, DateTime dateTo) 等方法。缺点是我必须为每个实体对象创建一个存储库类。好的一面是从数据库中持久化/删除对象图会容易得多,因为它知道实体的依赖关系。
  • 请告诉我:)
  • 最佳答案

    在为通用存储库付出了很多努力之后,我更喜欢实体特定的存储库。

    我的这个答案(到目前为止 36 票)详细说明了这种立场,并包含一种您可能可以使用的方法:

    Advantage of creating a generic repository vs. specific repository for each object?

    关于.net - 通用存储库。需要建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5107319/

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