实体框架提交时,删除所有内容?

  • 回答 (2)
  • 关注 (0)
  • 查看 (56)

在LINQtoSQL中,我可以这样做:

context.User_Roles.DeleteAllOnSubmit(context.User_Roles.Where(ur => ur.UserId == user.UserId));

对于实体框架来说,怎么实现?

10984802741098480274提问于
lllspeed啥也不会..回答于
已采纳
public static void DeleteAllObjects<TEntity>(this ObjectSet<TEntity> set, IEnumerable<TEntity> data) where TEntity : class {
    foreach(var entity in data.ToList()) //data.ToList() makes a copy of data for safe enumeration
        set.DeleteObject(entity);
}
asioc一个程序员回答于
foreach(var entity in context.User_Roles.Where(ur => ur.UserId == user.UserId))
{
  context.User_Roles.DeleteObject(entity);
}
context.SaveChanges();

当然,您可以编写一个扩展方法,它可以封装这个扩展方法。

这应该是这样的:

public static void DeleteObjects<TEntity> (this ObjectSet<TEntity> set, IEnumerable<TEntity> data) where TEntity : class
{
  foreach(var entity in data)
    set.DeleteObject(entity);
}

调用如下:

context.User_Roles.DeleteObjects(context.User_Roles.Where(ur => ur.UserId == user.UserId))
context.SaveChanges();

扫码关注云+社区

领取腾讯云代金券