-1

我正在创建一个应用程序,该应用程序被拆分为数据层(使用存储库模式& EF 4.0),业务层(带有附加逻辑的POCO)和服务层暴露给使用WCF的客户端)。N层 - 插入的响应位置与更新

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

所有评论欢迎 - 我不能自己决定!

回答

0

我的第一个想法是,我认为这是Entity Framework应该能够弄清楚自己的东西,但我不是100%确定的。

禁止EF为你做,我会把这个逻辑放入存储库。您将一个Customer对象传递给存储库,如下所示:myRepository.Save(myCustomer);

然后在客户的保存方法中,它检查客户是否分配了ID,或者您可以要求EF跟踪其状态,然后执行插入或更新。这样,无论Save被调用的位置是什么 - Web服务,UI等,这个逻辑都会被处理。

0

如果有任何适用于保存业务对象的业务规则,则责任在于业务层,否则决策应该是日层的责任。

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