最佳答案
我偶然发现了以下两篇文章 首先和 第二,作者在其中总结说,ORM 实体和域实体不应该混为一谈。
当我使用代码优先的方法使用 EF 6.0编码时,我正好遇到了这个问题。我使用 POCO 类作为 EF 中的实体以及我的域/业务对象。但是我发现自己经常遇到这样的情况: 我将一个属性定义为公共属性,或者将一个导航属性定义为虚拟属性,仅仅是因为 EF 框架迫使我这样做。
我不知道这两篇文章的底线是什么?例如,我是否应该为实体框架创建 CustomerEF 类,为我的域创建 CustomerD。然后创建一个使用 CustomerD 的存储库,将其映射到 CustomerEF,执行一些查询,然后将接收到的 CustomerEF 映射回 CustomerD。我认为 EF 就是将我的域实体映射到数据。
所以请给我一些建议。我是否忽略了 EF 能够提供给我的一件重要的事情?或者这是一个 EF 无法完全解决的问题?在后一种情况下,处理这个问题的好方法是什么?