C# EF的CodeFirst基本使用 增删改查 超简单 适合新手

超级简单的EF基本使用 适合新手上路

一、首先数据库设计好后 通过codefirst创建实体以及生成上下文帮助类

使用codefirst
vs会自动生成以下文件 (数据库实体及上下文帮助类)

实体以及生成上下文帮助类

二、在BLL层 写基本的使用方法

注意需要用到泛型
查询和添加 的方法
查询和添加的方法
删除和修改的方法
在删除和修改的方法
******注意增删改的方法后一定要 SaveChanges() ;
代码
下面展示一些 内联代码片

//实例化上下文帮助类
MyContext db = new MyContext();

//查询
public DbSet<T> Query()
        {
            return db.Set<T>();
        }

//新增
 public int Insert(T t)
        {
             db.Set<T>().Add(t);
            return db.SaveChanges();
        }
        
//删除
 public int Delete(int id)
 {
     //先找到数据
    var obj= db.Set<T>().Find(id);
     //进行删除
     db.Set<T>().Remove(obj);
     return db.SaveChanges();
 }

//修改
public int Edit(T t)
{
    db.Set<T>().Attach(t);
    db.Entry<T>(t).State = EntityState.Modified;
    return db.SaveChanges();
}


写好基本的方法之后 在控制器中调用方法
三、控制器调用方法

直接上代码

下面展示一些 内联代码片

//实例化
        StoreCarBLL<StoreInfo> Store = new StoreCarBLL<StoreInfo>();
        StoreCarBLL<CarInfo> Car = new StoreCarBLL<CarInfo>();

//分页显示数据

注:返回类型为IHttpActionResult 代表可以返回任意类型 
        [Route("api/showCar")]
        [HttpGet]
        public IHttpActionResult ShowCar(int PageIndex,int PageSize )
        {
	//如果只是单纯的查询显示 无条件,不分页 下面的这一句话即可
            var list = Car.Query().ToList();
            **********分割  以下为分页数据************
            //计算开始页码
            int Start = (PageIndex - 1) * PageSize;
            //查询所有汽车 分页 按CId排序(必须有排序) 
            var list = Car.Query().OrderBy(x=>x.CId).Skip(Start).Take(PageSize).ToList();
            //所有总数据量
            int PageCount = Car.Query().Count();         
            return  Ok(new { list , PageCount });
        }
//多表联查写法
//属于 1公司的汽车 多表联查
        var list = (from a in db.StoreInfo
         join b in db.CarInfo on a.SId equals b.StoreId
         select new { a.CompanyName,b.CarName }).ToList();

注:查询显示的写法有很多种 可以网上自己查找资料


/// <summary>
        /// 新增汽车
        /// </summary>
        /// <param name="c"></param>
        /// <returns></returns>
        [Route("api/addCar")]
        [HttpPost]
        public IHttpActionResult AddCar(CarInfo c)
        {
            return Ok(Car.Insert(c));
        }

 /// <summary>
        /// 删除汽车
        /// </summary>
        /// <param name="cd"></param>
        /// <returns></returns>
        [Route("api/RemoveCar")]
        [HttpGet]
        public IHttpActionResult DelCar(int cd )
        {
            return Ok(Car.Delete(cd) );
        }
        
/// <summary>
        /// 反填数据(修改的时候)
        /// </summary>
        /// <param name="cid"></param>
        /// <returns></returns>
        [Route("api/fanCar")]
        [HttpGet]
        public IHttpActionResult FanCar(int cid)
        {
            return Ok(Car.Query().Find(cid));
        }

 /// <summary>
        /// 修改(编辑)
        /// </summary>
        /// <param name="c"></param>
        /// <returns></returns>
        [Route("api/editCar")]
        [HttpPost]
        public IHttpActionResult EditCar(CarInfo c)
        {
            return Ok(Car.Edit(c));
        }

		*********以上基本的增删改查**********
  /// <summary>
        /// 状态流转
        /// </summary>
        /// <param name="cid"> Id</param>
        /// <param name="CarState">状态字段</param>
        /// <returns></returns>
        [Route("api/ChangeState")]
        [HttpGet]
        public int ChangeState(int cid, int CarState)
        {
            //通过id找到数据
            var obj = Car.Query().Find(cid);
            //更新状态值
            obj.CarState = CarState;
            //执行修改保存,将状态保存至数据库更新数据
            return Car.Edit(obj);
        }

/// <summary>
        /// 导出数据 Excel表格
        /// </summary>
        [Route("api/DaoChu")]
        [HttpGet]
        public void ToExcel()
        {
            //获取数据
            var list = Car.Query();
            //转json字符串
            var json = JsonConvert.SerializeObject(list);
            //转 datatable类型 
            DataTable dt = new DataTable();
            dt = JsonConvert.DeserializeObject<DataTable>(json);
            //导出 ExcelHelper为封装好的帮助类 
            ExcelHelper.ExportByWeb(dt,"汽车产品","汽车.xls");
        }

	*********************以上后台基本完成***********************************

  
  

导出
下面展示一些 内联代码片

function toExcel() {
        location.href = "http://localhost:57536/api/DaoChu";
    }

简单的EF增删改查就完成啦!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值