本文共 1721 字,大约阅读时间需要 5 分钟。
dbContext是一个上下文环境,里面内置对象跟踪,会开启数据库链接。
实例1:
public static void Show() { using (NewsDbContext dbContext = new NewsDbContext()) { //打印sql信息 dbContext.Database.Log += c => Console.WriteLine($"sql:{c}"); News news = new News() { NewsClassifyId = 3, Title = "621", Image = null, Contents = "621测试信息", PublishDate = DateTime.Now, Remark = "621备注" }; dbContext.News.Add(news); News news1 = dbContext.News.FirstOrDefault(n => n.Id == 2); news1.Title += "1"; News news2 = dbContext.News.FirstOrDefault(n => n.Id == 6); news2.Title += "2"; News news3 = dbContext.Set().Find(50); dbContext.News.Remove(news3); dbContext.SaveChanges(); } }
上面代码中包含对数据的新增,修改,删除操作。
dbContext.SaveChanges(); 多个数据修改,一次SaveChanges,开启事物,任何一个失败,整个事物回滚。
实例2:
public static void Show() { using (NewsDbContext dbContext = new NewsDbContext()) { //打印sql信息 dbContext.Database.Log += c => Console.WriteLine($"sql:{c}"); var list = dbContext.Set().Where(n => n.Id > 10); list = list.OrderBy(n => n.Id); //到这里为止,不会去数据库执行sql //开始遍历数据时才去数据库查询 foreach (var item in list) { Console.WriteLine(item.Title); } } }
在写LINQ查询语句时,并不会去数据库执行sql,而是当数据开始遍历时才会去数据库执行sql。
延迟查询,可以叠加多次查询条件,一次性提交到数据库,按需获取数据。
转载地址:http://fijzb.baihongyu.com/