我正在使用Entity Framework编写新的应用程序。
EF在哪里?我目前的想法是将它隔离在一个DataAccess程序集中,该程序集公开了许多存储库(基本上包装了EF)。
然后我会创建自己的Domain对象并将它们传递给将它们映射到EntityFramework Entity(我将其视为DAO)的存储库。
这种方法的问题是我需要做的映射量,即使对于较小的域模型也是如此。
我也喜欢Repository.GetAll(Func<TDomainObj, bool> filter)
方法来检索已过滤的项目数,但是我需要将该函数转换为DAO:
Func<**TDomainObj**, bool> filter
---&gt;
Func<**TEntityFrameworkObj**, bool> filter
不确定我该怎么办?如果我只是在存储库中允许Func<TEntityFrameworkObj, bool>
,则调用者必须知道System.Data.Objects
。
我开始认为我应该将应用程序与EF结合并使用他们的System.Data.Objects
作为我的模型....
期待您的建议/意见,
大卫
答案 0 :(得分:2)
Julie Lerman has a free, online presentation on EF tips and tricks tomorrow。
我将在free, online CodeRage conference in September上展示“如何像实体框架一样思考(以及为什么你可能首先想要这样做)”。该演示文稿将在不久后下载。
答案 1 :(得分:0)
我们将EF封装在服务层之后。服务层公开DTO对象。我们将EF对象映射到代码中的DTO对象。
在某些情况下,我们会使用模板获取,这与您正在执行的操作类似。我们发送对象的位置,例如客户,并取回所有看起来像我们发送的客户。