文档章节

ASP.Net MVC+EF架构

o
 osc_1ee7cxmx
发布于 2018/08/06 15:49
字数 637
阅读 3
收藏 0

「深度学习福利」大神带你进阶工程师,立即查看>>>

ASP.Net MVC是UI层的框架,EF是数据访问的逻辑。

如果在Controller中using DbContext,把查询的结果的对象放到cshtml中显示,那么一旦在cshtml中访问关联属性,那么就会报错。因为关联属性可以一致关联下去,很诱惑人,include也来不及。

如果不using也没问题,因为会自动回收,但是这打开了“潘多拉魔盒”,甚至可以在UI层更新数据,相当于把数据逻辑写到了UI层。

有的三层架构中用实体类做Model,这样也是不好的,因为实体类属于DAL层的逻辑。

没有最好的架构,只有最合适的架构!      架构不是设计出来的,而是演化出来的!

一、EO 

         EO(Entity Object,实体对象) 就是EF中的实体类,对EO的操作会对数据库产生影响。 

         DTO(Data Transfer Object,数据传输对象),用于在各个层之间传递数据的普通类,DTO有哪些属性取决于其他层要什么数据。DTO一般是扁平类,也就是没有什么关联属性,都是普通类型的属性,一些复杂项目中,数据访问层和业务逻辑层直接传递用一个DTO类,DTO类类似与三层架构中的Model。

         EO 相当于DataTable,不能传输到DAL之外;  DTO就是三层Model,在各个层中间传输数据用的

         VIewModel(视图模型),用来组合来自其他层的数据显示到UI层,简单的数据可能可以直接把DTO交给界面显示,一些复杂的数据可以要重新转换为VIewModel对象。

 

二、多层架构

        搭建一个ASP.NET MVC三层架构项目:DAL、BLL、DTO、UI(asp.net.mvc)。UI、DAL、BLL 都引用DTO;BLL引用DAL;EF中所有的代码都定义到DAL,   BLL中只访问DAL、BLL中不要引用DAL中EF的类,不要在BLL中执行Include操作,所有数据准备工作都在DAL中完成

 

三、架构退化

             UI+BLL+DAL   =>  UI+Service

             合适的架构:能够满足当前项目的要求,并且适度的考虑以后的项目的发展,不要想的太远,不要“过度架构”,让新手能够快速入手

             UI项目虽然不直接访问EF中的类,但是仍然需要在UI项目的App.config(Web.config)中对EF做配置,也要在项目中通过Nuget安装EF,并且把连接字符串配置在UI的web.config中

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

Subversion存储库中“分支”,“标记”和“主干”的含义是什么?

问题: I've seen these words a lot around Subversion (and I guess general repository) discussions. 我已经在Subversion(我猜通用存储库)讨论中看到了很多这样的话。 I have been us......

富含淀粉
今天
5
0
《Java8实战》笔记(03):Lambda表达式

本文源码 Lambda 管中窥豹 可以把Lambda表达式理解为简洁地表示可传递的匿名函数的一种方式:它没有名称,但它有参数列表、函数主体、返回类型,可能还有一个可以抛出的异常列表。 Lambda表达...

巨輪
今天
7
0
从其他文件夹导入文件 - Importing files from different folder

问题: I have the following folder structure. 我有以下文件夹结构。 application/app/folder/file.py and I want to import some functions from file.py in another Python file which r......

javail
今天
22
0
大数据研发学习之路--Hadoop集群搭建

阅读编译文档 准备一个hadoop源码包,我选择的hadoop版本是:hadoop-2.7.7-src.tar.gz,在hadoop-2.7.7的源码 包的根目录下有一个文档叫做BUILDING.txt,这其中说明了编译hadoop所需要的一些...

DSJ-shitou
今天
8
0
OSChina 周五乱弹 —— 特么是别的公司派来的特洛伊木马吧?

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 小小编辑推荐:《我会守在这里》- 毛不易 《我会守在这里》- 毛不易 手机党少年们想听歌,请使劲儿戳(这里) @FalconChen :股市连跪了五天,...

小小编辑
今天
77
2

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部