为了符合后面更新后的重构系统,文章于2016-11-1日重写
回顾上一节的解决方案,我们看出了解决方案中类库的关系
这里要说明一点MVC!=三层
他们大约是这样的一种关系
代码实现
上一节我们在EF添加了一个实体,这次我们来看看怎么操作这个实体,下面我们创建IDAL,DAL,IBLL,BLL的代码:
新建一个SysSampleController的控制器:不需要写什么代码,系统自动生成Index方法:分别在各层添加下列代码:
using System; using System.Linq; using Apps.IDAL; using Apps.Models; using System.Data; namespace Apps.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.Set<SysSample>().Add(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); db.Set<SysSample>().Remove(entity); return db.SaveChanges() > 0; } } /// <summary> /// 修改一个实体 /// </summary> /// <param name="db">数据库上下文</param> /// <param name="entity">实体</param> public int Edit(SysSample entity) { using (DBContainer db = new DBContainer()) { db.Set<entity>().Attach(entity); db.Entry<SysSample>(entity).State = 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() { } } }