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