没有行李的门面/服务层

时间:2011-11-23 06:21:03

标签: entity-framework entity-framework-4 ef-code-first

使用MVC3,Code First(DbContext)

有没有办法实现(理想情况下)外观或服务层来解耦MVC3 / EF4.2而不编写存储库和工作单元?我认为存储库和工作单元完全是多余的,因为它们已经存在于EF中。我认为创造这些人的人却忽略了这一点,但也许我被误导了。

相反,我希望看到某种类型的经理可以使用多个DbContexts和Facade来利用它,但我不能为我的生活做出努力。

有什么想法吗?理想情况下,指向一个非常好的参考项目的指针将是完美的。

要明确,我想要[任何客户] - > ([服务] | [门面]) - > [型号] - > [数据]无需不断创建存储库类。

R上。

P.S。这种事情是灵感:( ObjectContextManager)。你可以通过制作那些可重复使用的代码,然后只是担心编写门面类来减少很多代码。

2 个答案:

答案 0 :(得分:1)

是的,这是可能的,但解决方案取决于您。只需将任何逻辑从控制器移动到外观中的专用方法,并在该方法中包装所有EF访问。随着项目的进展,识别外观层的共享(可重用)部分并重构代码,以便从这些可重用部分组成最终功能。

没有更多要解释的内容。这是SW开发人员的典型工作,所以我不确定您在寻找什么。试试吧。

答案 1 :(得分:0)

这是一个引人入胜的侦探踪迹。阅读不同的方法让我相信,虽然很多人都在编写和使用这些无数的方法,但很少有人真正真正了解实际的现实应用或这些方法的需要。强调现实世界。

在我的搜索中,我记得我从www.dofactory.com获得了.Net 4设计模式的副本。其中有一个参考应用程序(模式在实践中)和,这是我的问题的答案(如果不是实际的实现)。

在不必要的长隧道尽头点亮所有这些。

最终,我希望WCF数据服务的下一个版本,oData和Entity Framework将允许我抛弃所有内容,然后只有客户端 - >服务 - >域;一切都非常简单。