2009-12-10 93 views

回答

3

我认为与实体框架一起使用的常见设计模式是Repository模式,我不会提供链接,因为Google搜索将返回的内容超过我可以在此处发布的内容。它将帮助您将数据访问代码隐藏在允许更轻松地进行测试和分离问题的界面之后。

我认为您在最佳实践方面所做的任何选择都将在很大程度上取决于您正在使用的工具。如果您使用的是标准ASP.NET,那么我会建议您使用您链接的文章中建议的MVP模式,以帮助您区分问题并创建可测试的代码。但是,如果您使用的是ASP.NET MVC,那么MVP无关紧要,因为该框架有助于将您的担忧分开。有关环境的更多背景可能有助于提出建议。

+0

存储库模式的一个好的文章是这里的代码项目文章:http://www.codeproject.com/KB/database/ImplRepositoryPatternEF.aspx – itchi 2009-12-11 03:59:53

1

值得注意的是,作为.NET 4和EF4的一部分,这是一个备受关注的领域。

他们现在支持POCO以及Self-Tracking-Entities,它们都可以在层和层之间来回发送(包括WCF边界)。

有关自追踪实体的更多信息,请参见this blog entry

1

我喜欢使用UnitOfWork模式以及DDD和服务层。我不会将我的域对象传递给服务层以外的任何层。即使这样我的域对象也被接口抽象出来了。服务层使用适配器模式或远程门面模式将dto对象传递给其客户端。

+0

>不通过层之间的实体 你的意思是,不通过层之间的实体? – 2009-12-10 12:29:26

+0

通常我使用接口在域和服务层之间传递,并使用dtos在服务和表示层之间传递。 我这样做,不管层次。 – devlife 2010-01-05 17:29:59