我正在尝试使用此查询从EF中删除记录:
public void ClearAllLocks(Lock LockObj)
{
var Stf = context.Locks.First(S => S.UserId == LockObj.UserId);
if (Stf == null)
{
return;
}
context.Locks.DeleteObject(Stf);
context.SaveChanges();
}
但我只能删除第一条记录,我也知道原因(因为我使用的是First),我应该写什么而不是First,以便删除所有条目。
答案 0 :(得分:2)
public void ClearAllLocks(Lock LockObj)
{
var locksToDelete = context.Locks.Where(s => s.UserId == LockObj.UserId);
foreach(var stf in locksToDelete)
context.Locks.DeleteObject(stf);
context.SaveChanges();
}
您也可以使用EntityFramework.Extended(在NuGet上搜索):
public void ClearAllLocks(Lock LockObj)
{
context.Locks.Delete(s => s.UserId == LockObj.UserId);
context.SaveChanges();
}