跨层使用实体框架模型?

时间:2013-06-30 02:27:04

标签: entity-framework

我正在编写一个小型MVC应用程序来处理我运行的项目的时间表信息。它将被托管,我正在使用UI /服务/数据层进行设计。我被撕毁的一件事是,我可以在所有层中使用实体框架模型吗?嗯,我想我可以,但是我应该吗?

所有图层都将托管在同一台计算机上(除了实际的数据库......)。但是,跨所有层访问EF模型意味着所有层(包括UI)都需要引用数据库层 - 绕过服务。

这是安全的举动吗?

也许我只能从EF中提取模型,并以共享库的形式共享层中的那些模型?

或者我应该咬紧牙关,实施DTO和翻译?所以:

数据库 - > EF-> TranslaterToDTO-> BusinessLogic-> ServiceLayer-> UI(TranslaterTOViewModel) - >查看

1 个答案:

答案 0 :(得分:0)

实际上,EF模型 是您的商业模式。

EF已经处理了您的数据库模型与您的业务模型之间的映射(如果您进入CodeFirst,则是EDMX的MSL部分或您的EntityMapping类。)

一旦构建MVC应用程序,就应该有一个View Model。当请求到达Contoller方法时,返回到View的Model应该由ModelBuilder构建。这取决于模型构建器调用您的业务服务。该服务返回模型构建器将映射到右侧ViewModel的业务模型 看一下这个SO answer,我将解释如何使用ModelBuilder。