构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(5)2014-08-10EF增删改查by糟糕的代码上一讲我们创建了一系列的解决方案,我们通过一个例子来看看层与层之间的关系。我们把Controllers分离出来了BLL层和DAL层BLL专注于业务上的处理DAL专注于数据访问层的处理而Controller跟清楚的与View交互我们上一讲已经在EF添加了一个实体SysSample下面我们创建IDAL,DAL,IBLL,BLL的代码吧
using App.Models;using System.Linq;namespace App.IDAL{public interface ISysSampleRepository{/// <summary>/// 获取列表/// </summary>/// <param name="db">数据库上下文</param>/// <returns>数据列表</returns>IQueryable<SysSample> GetList(DBContainer db);/// <summary>/// 创建一个实体/// </summary>/// <param name="entity">实体</param>int Create(SysSample entity);/// <summary>/// 删除一个实体/// </summary>/// <param name="entity">主键ID</param>int Delete(string id); /// <summary>/// 修改一个实体/// </summary>/// <param name="entity">实体</param>int Edit(SysSample entity);/// <summary>/// 获得一个实体/// </summary>/// <param name="id">id</param>/// <returns>实体</returns>SysSample GetById(string id);/// <summary>/// 判断一个实体是否存在/// </summary>bool IsExist(string id);}}ISysSampleRepository.csusing System;using System.Linq;using App.IDAL;using App.Models;using System.Data;namespace App.DAL{public class SysSampleRepository : ISysSampleRepository, IDisposable{/// <summary>/// 获取列表/// </summary>/// <param name="db">数据库上下文</param>/// <returns>数据列表</returns>public IQueryable<SysSample> GetList(DBContainer db){IQueryable<SysSample> list = db.SysSample.AsQueryable();return list;}/// <summary>/// 创建一个实体/// </summary>/// <param name="db">数据库上下文</param>/// <param name="entity">实体</param>public int Create(SysSample entity){using (DBContainer db = new DBContainer()){db.SysSample.AddObject(entity);return db.SaveChanges();}}/// <summary>/// 删除一个实体/// </summary>/// <param name="db">数据库上下文</param>/// <param name="entity">主键ID</param>public int Delete(string id){using (DBContainer db = new DBContainer()){SysSample entity = db.SysSample.SingleOrDefault(a => a.Id == id);if (entity != null){db.SysSample.DeleteObject(entity);}return db.SaveChanges();}}/// <summary>/// 修改一个实体/// </summary>/// <param name="db">数据库上下文</param>/// <param name="entity">实体</param>public int Edit(SysSample entity){using (DBContainer db = new DBContainer()){db.SysSample.Attach(entity);db.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified);return db.SaveChanges();}}/// <summary>/// 获得一个实体/// </summary>/// <param name="id">id</param>/// <returns>实体</returns>public SysSample GetById(string id){using (DBContainer db = new DBContainer()){return db.SysSample.SingleOrDefault(a => a.Id == id);}}/// <summary>/// 判断一个实体是否存在/// </summary>/// <param name="id">id</param>/// <returns>是否存在 true or false</returns>public bool IsExist(string id){using (DBContainer db = new DBContainer()){SysSample entity = GetById(id);if (entity != null)return true;return false;}}public void Dispose(){}}}