书犹药也,善读可以医愚

    

ASP.NET结合MVC+EF T4模板写后台管理系统框架(6)- EF增删改查

上一节创建了实体数据库,这次我们来看看怎么操作这个实体

代码实现

新建一个UserInfoController的控制器:不需要写什么代码,系统自动生成Index方法:
创建IDAL,DAL,IBLL,BLL的代码:

IDAL层-IUserInfoRepository

using BYCMS.Model;
using System.Linq;

namespace BYCMS.IDAL
{
public interface IUserInfoRepository
{
/// <summary>
/// 获取列表
/// </summary>
/// <param name="db">数据库上下文</param>
/// <returns>数据列表</returns>
IQueryable<UserInfo> GetList(DBContainer db);
/// <summary>
/// 创建一个实体
/// </summary>
/// <param name="entity">实体</param>
int Create(UserInfo entity);
/// <summary>
/// 删除一个实体
/// </summary>
/// <param name="entity">主键ID</param>
int Delete(int id);
/// <summary>
/// 修改一个实体
/// </summary>
/// <param name="entity">实体</param>
int Edit(UserInfo entity);
/// <summary>
/// 获得一个实体
/// </summary>
/// <param name="id">id</param>
/// <returns>实体</returns>
UserInfo GetById(int id);
/// <summary>
/// 判断一个实体是否存在
/// </summary>
bool IsExist(int id);
}
}

DAL层-UserInfoRepository

using BYCMS.IDAL;
using BYCMS.Model;
using System.Data.Entity;
using System.Linq;

namespace BYCMS.DAL
{
    public class UserInfoRepository : IUserInfoRepository
    {
        /// <summary>
        /// 创建一个实体
        /// </summary>
        /// <param name="entity">实体</param>
        /// <returns></returns>
        public int Create(UserInfo entity)
        {
            using (DBContainer db = new DBContainer())
            {
                db.Set<UserInfo>().Add(entity);
                return db.SaveChanges();
            }
        }
        /// <summary>
        /// 删除一个实体
        /// </summary>
        /// <param name="id">主键ID</param>
        /// <returns></returns>
        public int Delete(int id)
        {
            using (DBContainer db = new DBContainer())
            {
                UserInfo entity = db.UserInfoSet.Find(id);
                db.Set<UserInfo>().Remove(entity);
                return db.SaveChanges();
            }
        }
        /// <summary>
        /// 修改一个实体
        /// </summary>
        /// <param name="entity">实体</param>
        /// <returns></returns>
        public int Edit(UserInfo entity)
        {
            using (DBContainer db = new DBContainer())
            {
                db.Set<UserInfo>().Attach(entity);
                db.Entry(entity).State = EntityState.Modified;
                return db.SaveChanges();
            }
        }
        /// <summary>
        /// 获得一个实体
        /// </summary>
        /// <param name="id">主键ID</param>
        /// <returns></returns>
        public UserInfo GetById(int id)
        {
            using (DBContainer db = new DBContainer())
            {
                return db.UserInfoSet.Find(id);
            }
        }
        /// <summary>
        /// 获取列表
        /// </summary>
        /// <param name="db"></param>
        /// <returns></returns>
        public IQueryable<UserInfo> GetList(DBContainer db)
        {
            IQueryable<UserInfo> list = db.UserInfoSet.AsQueryable();
            return list;
        }
        /// <summary>
        /// 判断一个实体是否存在
        /// </summary>
        /// <param name="id">主键ID</param>
        /// <returns></returns>
        public bool IsExist(int id)
        {
            using (DBContainer db = new DBContainer())
            {
                UserInfo entity = GetById(id);
                if (entity != null)
                    return true;
                return false;
            }
        }
    }
}

IBLL层-IUserInfoBLL

using BYCMS.Model;
using System.Collections.Generic;

namespace BYCMS.IBLL
{
public interface IUserInfoBLL
{
/// <summary>
/// 获取列表
/// </summary>
/// <param name="pager">JQgrid分页</param>
/// <param name="queryStr">搜索条件</param>
/// <returns>列表</returns>
List<UserInfo> GetList();
/// <summary>
/// 创建一个实体
/// </summary>
/// <param name="errors">持久的错误信息</param>
/// <param name="model">模型</param>
/// <returns>是否成功</returns>
bool Create(UserInfo model);
/// <summary>
/// 删除一个实体
/// </summary>
/// <param name="errors">持久的错误信息</param>
/// <param name="id">id</param>
/// <returns>是否成功</returns>
bool Delete(int id); 
/// <summary>
/// 修改一个实体
/// </summary>
/// <param name="errors">持久的错误信息</param>
/// <param name="model">模型</param>
/// <returns>是否成功</returns>
bool Edit(UserInfo model);
/// <summary>
/// 根据ID获得一个Model实体
/// </summary>
/// <param name="id">id</param>
/// <returns>Model实体</returns>
UserInfo GetById(int id);
/// <summary>
/// 判断是否存在实体
/// </summary>
/// <param name="id">主键ID</param>
/// <returns>是否存在</returns>
bool IsExist(int id);
}
}

BLL层-UserInfoBLL

using BYCMS.Common;
using BYCMS.DAL;
using BYCMS.IBLL;
using BYCMS.IDAL;
using BYCMS.Model;
using System.Collections.Generic;
using System.Linq;

namespace BYCMS.BLL
{
public class UserInfoBLL : IUserInfoBLL
{
DBContainer db = new DBContainer();
IUserInfoRepository rep = new UserInfoRepository();

/// <summary>
/// 创建一个实体
/// </summary>
/// <param name="errors"></param>
/// <param name="model"></param>
/// <returns></returns>
public bool Create(UserInfo model)
{
if (rep.Create(model) == 1)
{
return true;
}
return false;
}
/// <summary>
/// 根据id删除实体
/// </summary>
/// <param name="errors"></param>
/// <param name="id"></param>
/// <returns></returns>
public bool Delete(int id)
{
if(rep.Delete(id) > 0)
{
return true;
}
return false;
} 
/// <summary>
/// 编辑实体
/// </summary>
/// <param name="errors"></param>
/// <param name="model"></param>
/// <returns></returns>
public bool Edit(UserInfo model)
{
if (rep.Edit(model) > 0)
{
return true;
}
return false;
}
/// <summary>
/// 根据id查找实体
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public UserInfo GetById(int id)
{
return rep.GetById(id);
}
/// <summary>
/// 实体列表
/// </summary>
/// <param name="pager"></param>
/// <param name="queryStr"></param>
/// <returns></returns>
public List<UserInfo> GetList()
{
IQueryable<UserInfo> queryData = rep.GetList(db);
return queryData.ToList();
}
/// <summary>
/// 判断是否存在实体
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public bool IsExist(int id)
{
return rep.IsExist(id);
}
}
}

最后我们往数据库插入几条记录这时你应该看到效果了

结束

已有 3 条评论

  1. 博主也是做.NET的?同行吗,EF codefirst挺好用的
    1. 回复 VPS234主机测评: 都有涉及,略懂皮毛,小白罢辽

添加新评论

  时光Time

说星星很亮的人,一定没见你的眼睛。
--- updated on 2019-10-03 13:41

  关于博主

98年,处女座,有一点点点点强迫症,性格诡异,情绪复杂多变。爱好码代码。也喜欢听歌与阅读,喜欢接触新鲜事物。座右铭:活到老,学到老,生命在于学习!

  近期评论

青春就是用来追忆的,当你怀揣着它时,它一文不值,只有将它耗尽后,再回过头看,一切才有了意义,爱过我们的人和伤害过我们的人,都是我们青春存在的意义。

既然活着来到这个世界,就没有打算活着回去。所以,在这有限的时间里,我们应该珍惜生命,珍惜机会,更要珍惜那得之不易的时间。因那滴答做响的时间脚步,一旦走过,再不回头。

青春是一个充满魁力,充满诱惑的时代。好动是青春,好奇是青春,好玩是青春。玩世不恭更是青春,我们的一切切都是青春。

要先打败任何事情得先学会打败自己。

我会把每一次改变当做成长,哪怕是痛也值得。