实体框架的最佳实践?

时间:2009-08-26 11:18:56

标签: entity-framework

我正在使用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作为我的模型....

期待您的建议/意见,

大卫

2 个答案:

答案 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对象。

在某些情况下,我们会使用模板获取,这与您正在执行的操作类似。我们发送对象的位置,例如客户,并取回所有看起来像我们发送的客户。