2

我有 2 个实体组和用户。1 个“组”有一个用户集合,1 个“用户”有一个组集合。我想删除网桥表中的一条记录

Group: GroupID, name
User: UserID, name
GroupUser (bridge table): GroupID, UserID

目前我有

var query = from u in context.User
                        from g in u.Group
                        where u.UserID==1 && g.GroupID==10

但是,如何删除桥表中具有匹配 UserID 和 GroupID 的记录。query.Clear() 返回错误

编辑:在我的 EF 中,没有对象可以代表桥接表。所以我不能使用 context.UserGroup(...) 我应该为桥表创建一个对象吗?或者有没有其他方法可以解决这个问题?

4

2 回答 2

1

假设您的桥接表已命名UserGroup(s)

var group = context.UserGroup.SingleOrDefault(x => x.UserID == 1 && x.GroupID == 10);
if (group != null)
{
    context.DeleteObject(group);
    context.SaveChanges();
}
else
    //Do something in response
于 2013-08-06T17:08:22.373 回答
0

您应该从桥接表中选择:

var results = from bt in context.BridgeTable 
               where bt.UserID = 1 and bt.GroupID = 1
foreach(var result in results)
{
     context.DeleteObject(result);
}
context.SaveChanges();
于 2013-08-06T17:08:52.203 回答