我在ASP.NET MVC应用程序中使用身份。
我的身份模型是(涉及的部分):
public class ApplicationUser : IdentityUser
{
public virtual ICollection<Group> Groups { get; set; }
}
public class Group
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<ApplicationUser> ApplicationUsers { get; set;
}
我正在得到这样的用户:
ApplicationUser signedUser = UserManager.FindById(model.Id);
现在,我只想删除此signedUser的所有Group
。我已经尝试过foreach循环,但是随着集合的修改,它当然行不通。
我没有RemoveAll()
的{{1}}方法。
如何实现?
谢谢
答案 0 :(得分:0)
您应该要求unitOfWork为您完成这项工作:
unitOfWork.Groups.RemoveRange(signedUser.Groups);
或者如果您想直接使用dbset:
foreach(var group in signedUser.Groups)
{
db.Entry(group).State = EntityState.Deleted;
}
db.SaveChanges(); //After all the customer is deleted, Commit.
答案 1 :(得分:0)
好吧,我明白了。这里的重点是它是一个虚拟属性,实际上只是一个关系。
所以要删除此关系,我必须使用:
signedUser.Groups.Clear();
感谢您的帮助。