【问题标题】:UpdateOrAdd method in Repository + UnitOfWork patternRepository + UnitOfWork 模式中的 UpdateOrAdd 方法
【发布时间】:2011-11-14 09:49:04
【问题描述】:

是否可以在 Repository 模式中添加 UpdateOrAdd 方法或使用参数 'AddIfNoExists' 的 UpdateMethod ?

我想添加这样的方法来简化使用 od DataServices。

例如:客户端代码在网格中显示数据..然后客户端将所有数据发送到存储库的UpdateMethod..然后存储库确定添加了哪些数据以及修改了哪些数据。

【问题讨论】:

    标签: entity-framework repository repository-pattern


    【解决方案1】:

    存储库的公共界面的外观完全取决于您。如果您想要插入和更新的单一方法,您当然可以公开它,但您必须正确处理方法实现中的行为 - EF 不会帮助您,因为它需要单独调用插入和更新。

    【讨论】:

      【解决方案2】:

      我总是在存储库中创建一个名为 Add 的方法,如果它是新对象,它将添加新对象,如果它存在则更新对象,但保存或更新不属于存储库,因为存储库没有跟踪状态和哪个是新的,哪个是以前存在的,这是属于工作单元的,这就是为什么工作单元模式告诉你应该跟踪你所做的更改;否则,该数据将不会被写回数据库 因此,您需要根据您的 ORM 或 DAL 方法在工作单元类中添加此方法 所以工作单元会跟踪

      • 新对象
      • 脏对象
      • 删除对象

      最后你会

      • 提交(保存)--> 添加新的并更新现有的或
      • 回滚

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多