这种删除方法允许我同时删除多个寄存器?

时间:2013-12-04 18:53:25

标签: c# asp.net-mvc entity-framework repository

告诉我这是否有意义:

public void Delete<T>(Expression<Func<T, bool>> predicate)
{
    var model = _context.DbSet<T>().FirstOrDefault(predicate);

    _context.DbSet<T>().Remove(model);
    _context.SaveChanges();
}

据我所知,该方法可以使用谓词删除多个记录。 那么,为什么执行一个只根据此方法中的谓词返回一条记录的查询呢?

此方法允许您同时删除多个记录吗?

2 个答案:

答案 0 :(得分:1)

它通过FirstOrDefault返回一个模型,这意味着0或1.它不可能删除多个。

也许for循环在这里很有用。

for (var model in _context.DbSet<T>().Where(pedicate))
{
    _context.DbSet<T>().Remove(model);
}

_context.SaveChanges();

答案 1 :(得分:0)

此方法仅删除与条件匹配的第一条记录。它没有意义,特别是当你真的想要删除多一条记录时,因为每次保存更改都不是一般情况。

相关问题