告诉我这是否有意义:
public void Delete<T>(Expression<Func<T, bool>> predicate)
{
var model = _context.DbSet<T>().FirstOrDefault(predicate);
_context.DbSet<T>().Remove(model);
_context.SaveChanges();
}
据我所知,该方法可以使用谓词删除多个记录。 那么,为什么执行一个只根据此方法中的谓词返回一条记录的查询呢?
此方法允许您同时删除多个记录吗?
答案 0 :(得分:1)
它通过FirstOrDefault
返回一个模型,这意味着0或1.它不可能删除多个。
也许for循环在这里很有用。
for (var model in _context.DbSet<T>().Where(pedicate))
{
_context.DbSet<T>().Remove(model);
}
_context.SaveChanges();
答案 1 :(得分:0)
此方法仅删除与条件匹配的第一条记录。它没有意义,特别是当你真的想要删除多一条记录时,因为每次保存更改都不是一般情况。