Entity_Framework的基本使用(增删改查)

>DbContext类是EntityFramework (简称 EF)中的一个类,可以理解为一个数据库对象的实例。在 EF中,无需手动的拼接 SQL 语句对数据库进行增删改查,而是通过 DbContext 来进行相应操作。DbContext类是实体框架的重要组成部分。它是您的域或实体类与数据库之间的桥梁,DbContext是负责与数据交互作为对象的主要类。所以我们将实体赋值,然后把值和操作交给Dbcontext类,由它完成对数据库的操作。
在这里插入图片描述

增加:

 //添加一个实体对象
            NewsListTable newsList = new NewsListTable();
            newsList.NewsTitle = "拍视频";
            newsList.NewsDate = DateTime.Now;
            newsEntities.NewsListTable.Add(newsList);//先添加到上下文中
            //告诉EF,向数据库保存更新
            newsEntities.SaveChanges();//根据xml文件表映射关系生成sql脚本更改数据库数据

更新:

            NewsListTable newsList = new NewsListTable();
            newsList.NewsTitle = "听音乐";
            newsList.NewsDate = DateTime.Now;
            newsList.NewsId = 31;//更新删除操作,必须声明ID列(根据ID主键列生成sql脚本更改数据)
            newsEntities.Entry<NewsListTable>(newsList).State = EntityState.Modified;//告诉EF,已对此实体做出更新 
            newsEntities.SaveChanges();

   //修改部分列:
   newsEntities.NewsListTable.Attach(newsList);//让上下文实体管理newlist
   //设置修改列
   newsEntities.Entry(newsList).Property(u => u.NewsDate).IsModified = true;
   newsEntities.Entry<NewsListTable>(newsList).Property("NewsDate").IsModified = true;//不推荐硬编码

删除:

            NewsListTable newsList = new NewsListTable();
            newsList.NewsId = 31;//要删除的主键ID
            //告诉EF,我们已对此实体执行删除操作
            newsEntities.Entry<NewsListTable>(newsList).State = EntityState.Deleted;//删除
            newsEntities.SaveChanges();

Linq查询:

           IQueryable<NewsListTable> temp = from u in newsEntities.NewsListTable  where u.NewsId>5 orderby u.NewsId descending select u ;
           foreach (var item in temp)
            {
                Console.WriteLine(item.NewsId + " " + item.NewsTitle);
            }

Lambda表达式筛选:.出

//与Link表达式运行原理一样  Lambda-->Expression
IQueryable<Customers> data = modelData.Customers.Where(u => u.CtmId > 1);//使用lambda表达式筛选查询

查询多个指定列:

var customers = from u in modelData.Customers where u.CtmId > 0 && u.CtmId < 5 select new { cid=u.CtmId,cname=u.CtmName};//new {  cid = u.CtmId, uname = u.CtmName }使用匿名类来定义查询的字段

分页查询:

//Lambda表达式:
IQueryable<Customers> datas=modelData.Customers.Where(u => u.CtmId > 0).OrderBy(u => u.CtmId).Skip((3-1)* 5).Take(5);

//Linq表达式:
IQueryable<Customers> ulist = (from u in modelData.Customers where u.CtmId> 0 orderby u.CtmId descending select u).Skip((3 - 1) * 5).Take(5); 

模糊查询:

               IQueryable<Customers> customers = from data in modelData.Customers
                    //where data.CtmName.Contains("e")模糊查询
               where data.CtmName.StartsWith("张")
               select data;

Linq To EF:
在这里插入图片描述

发布了83 篇原创文章 · 获赞 11 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/MrLsss/article/details/104657079