设为首页 - 加入收藏 站长在线 - 常用服务器软件 - 在线站长工具 - 在线伪原创工具
您的当前位置:主页 > 网络教程 > ASP教程 > 正文

Asp.Net MVC+EF+三层架构的完整搭建过程

来源:ZzWww 编辑:ZzWww 时间:2017-03-30

架构图:

使用的数据库:

一张公司的员工信息表,测试数据

解决方案项目设计:

1.新建一个空白解决方案名称为Company

2.在该解决方案下,新建解决方案文件夹(UI,BLL,DAL,Model) 当然还可以加上common

3.分别在BLL,DAL,Model 解决方案文件夹下创建类库项目

(1).BLL解决方案文件夹: Company.BLL、Company.IBLL、Company.BLLContainer

(2).DAL解决方案文件夹: Company.DAL、Company.IDAL、Company.DALContainer

(3).Model解决方案文件夹:Company.Model

4.在UI 解决方案文件夹下添加一个ASP.NET Web应用程序,名称为Company.UI,选择我们的Mvc模板. 如图:

Model层: 选中Company.Model,右键=>添加=>新建项=>添加一个ADO.NET实体数据模型名称为Company=>选择来自数据库的EF设计器=>新建连接=>选择我们的Company数据库填入相应的内容

选择我们的Staff表,完成后如图:


这时Model层已经完成.我们的数据库连接字符串以及ef的配置都在App.Config里,但我们项目运行的是我们UI层的Web应用程序,所以我们这里要把App.Config里的配置复制到UI层的Web.Config中 数据访问层: 因为每一个实体都需要进行增删改查,所以我们这里封装一个基类.选中Company.IDAL,右键=>添加一个名称为IBaseDAL的接口=>写下公用的方法签名

著作权归作者所有。 商业转载请联系作者获得授权,非商业转载请注明出处。 作者:卷猫 链接:http://anneke.cn/ArticleInfo/Detial?id=11 来源:Anneke.cn using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Text; using System.Threading.Tasks;   namespace Company.IDAL { IBaseDAL<T> where T : class, new() { void Add(T t); void Delete(T t); void Update(T t); IQueryable<T> GetModels(Expression<Func<T, bool>> whereLambda); IQueryable<T> GetModelsByPage<type>(int pageSize, int pageIndex, bool isAsc, Expression<Func<T, type>> OrderByLambda, Expression<Func<T, bool>> WhereLambda); 一个业务中有可能涉及到对多张表的操作,那么可以将操作的数据,打上相应的标记,最后调用该方法,将数据一次性提交到数据库中,避免了多次链接数据库。 SaveChanges(); } }

基类接口封装完成.然后选中Company.IDAL,右键=>添加一个名称为IStaffDAL的接口=>继承自基类接口

 

著作权归作者所有。 商业转载请联系作者获得授权,非商业转载请注明出处。 作者:卷猫 链接:http://anneke.cn/ArticleInfo/Detial?id=11 来源:Anneke.cn using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Company.Model;   namespace Company.IDAL { IStaffDAL:IBaseDAL<Staff> { } }

IDAL完成,接下来是DAL 选中Company.DAL=>右键=>添加一个类,名称为:BaseDAL,该类是我们对IBaseDAL具体的实现,我们这里需要用到ef上下文对象,所以添加引用EntityFramework.dll和EntityFramework.SqlServer.dll(这里是ef6版本不同引用的dll也可能不同) 上面说到我们这里要用到ef下上文对象,我们这里不能直接new,因为这样的话可能会造成数据混乱,所以要让ef上下文对象保证线程内唯一。 我们选中Company.DAL=>右键=>添加一个类.名称为DbContextFactory.通过这个类才创建ef上下文对象.

著作权归作者所有。 商业转载请联系作者获得授权,非商业转载请注明出处。 作者:卷猫 链接:http://anneke.cn/ArticleInfo/Detial?id=11 来源:Anneke.cn using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Runtime.Remoting.Messaging; using System.Text; using System.Threading.Tasks; using Company.Model;   namespace Company.DAL { DbContextFactory { 创建EF上下文对象,已存在就直接取,不存在就创建,保证线程内是唯一。 DbContext Create() { DbContext dbContext = CallContext.GetData() as DbContext; if (dbContext==null) { dbContext=new CompanyEntities(); CallContext.SetData(,dbContext); } return dbContext; } } }

EF上下文对象创建工厂完成,这时我们来完成我们的BaseDAL


TAG标签:asp.net 搭建 过程 完整 架构 MVC+EF+ 三层

网友评论:

文章右边250
Top