DataEntities和Controller之间的中间层

时间:2012-07-23 19:12:37

标签: asp.net-mvc entity-framework linq-to-entities

我正在使用Model First阅读使用Linq to Entities的MVC3本教程 http://msdn.microsoft.com/en-us/data/gg685489.aspx

文章引述

  

我们的控制器将使用BlogDataEntities为我们检索数据。   在更高级的应用程序中,您应该进一步分离逻辑   不会直接使用BlogDataEntities   控制器。

MVC应用程序中实体和Controller之间的这个其他层的一般结构是什么?目的是什么?

2 个答案:

答案 0 :(得分:0)

我通常有一个私有的ViewModel(参见http://en.wikipedia.org/wiki/Model_View_ViewModel),它包含业务逻辑,可以从EF获取/保存,并且是视图绑定的内容。控制器没有做太多事情,只是实例化视图模型,并根据控制器操作,调用视图模型中的方法。

有些人可能会进一步分解并拥有一个完整的ViewModel,它没有逻辑,只有数据。具有所有逻辑的业务层,以及将数据从EF移动到ViewModel的能力,反之亦然。

答案 1 :(得分:0)

在文章“BlogDataEntities”中,不是某些特定实体类的名称(顾名思义),而是DbContext的名称。

我想这意味着你会尝试通过不实例化DbContext来隐藏你使用EF,但是通过使用像这样的存储库实现

http://msdn.microsoft.com/en-us/data/ff707264#_Toc261428890