在Repository模式中添加UpdateOrAdd方法或者使用参数'AddIfNoExists'添加UpdateMethod是否可以接受?
我想添加这样的方法来简化od DataServices的使用。
例如:客户端代码在网格中显示数据。然后客户端将所有数据发送到存储库的UpdateMethod。然后,存储库会计算出添加了哪些数据以及修改了哪些数据。
答案 0 :(得分:2)
完全取决于您的存储库的公共接口如何。如果你想要插入和更新的单一方法,你当然可以公开它,但你必须正确处理方法实现中的行为 - EF不会帮助你,因为它需要单独调用插入和更新。
答案 1 :(得分:0)
我总是在存储库中创建一个名为Add的方法,它将添加新对象(如果它是新的)并将更新该对象(如果它已存在但保存或更新它不属于存储库,因为存储库不跟踪状态和哪一个新的或之前存在的,这属于工作单元,这就是为什么工作单元模式告诉你应该跟踪你改变了什么;否则,该数据将不会被写回数据库 因此,您需要在工作单元中添加此方法,具体取决于您的ORM或DAL方法 所以工作单元将跟踪
最后你会