标签 标签 标签
- 一句话的事儿:修改、删除数据
#修改
01.修改单笔数据
#region 修改
var league = context.Leagues.First();
league.Name += "!!!";
var count = context.SaveChanges();
Console.WriteLine(count);
#endregion
02.修改多笔数据
补充说明:
var leagues = context.Leagues.Skip(1).Take(3);
通常用于翻页处理,即忽略前1一笔数据,获取3笔数据
//修改多笔数据
var leagues = context.Leagues.Skip(1).Take(3);
foreach (var league in leagues)
{
league.Name += "!!!";
}
var count = context.SaveChanges();
Console.WriteLine(count);
03.我们可以发现,我们更改的数据都是被DbContext追踪的数据,可是现实是要修改的数据往往来自客户端,即一些json样式的数据
var league = context.Leagues.AsNoTracking().First();
league.Name += "++";
context.Leagues.Update(league);
通过AsNoTracking(),可以设置该数据不被追踪,此外也可以设置全局数据不被追踪
public DataContext()
{
ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking;
}
04.不难看出,我们虽然只更改了Name属性,而EF是更改了所有数据
#删除
只能删除被DbContext追踪的数据
如何追踪数据呢? —>先查询,后删除
//Delete
//只能删除被追踪的数据
//先查询,后删除
var milan = context.Clubs.Single(x => x.Name == "AC Milan");
//调用删除方法
context.Clubs.Remove(milan);
context.Remove(milan);
context.RemoveRange(milan, milan);
context.Clubs.RemoveRange(milan,milan);
var count = context.SaveChanges();
Console.WriteLine(count);
- 本文作者:GeekPower - Felix Sun
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!