-1

我正在创建一个应用程序,该应用程序分为数据层(使用存储库模式和 EF 4.0)、业务层(带有附加逻辑的 POCO)和服务层(使用 WCF 向客户端公开)。

当我将记录保存到数据库时,我需要检查一下我是在更新现有记录还是插入新记录。该责任应该在哪里 - 在服务层中,以便明确管理对象的生命周期,或者在数据层中,以便保存记录将隐含地确定要采取的操作。

欢迎所有评论 - 我无法决定自己!

4

2 回答 2

0

我的第一个想法是,我认为这是 Entity Framework 应该能够自行解决的问题,但我对此不是 100% 确定的。

除非 EF 为你做这件事,否则我会将这个逻辑放在存储库中。您将客户对象传递给存储库,如下所示: myRepository.Save(myCustomer);

然后在 Customer 的 Save 方法中,它检查是否为客户分配了 ID,或者您可以要求 EF 跟踪其状态,然后执行插入或更新。这样,无论在哪里调用 Save ——Web 服务、UI 等,这个逻辑都会得到处理。

于 2011-05-11T16:02:30.037 回答
0

如果有任何业务规则适用于保存业务对象,则责任在于业务层,否则应由日层负责决定。

您正在使用 EF 应该是无关紧要的。

于 2011-05-12T09:51:25.787 回答