我有两个具有 m:n 关系的实体、组和动作。从 UI 中,可以将操作添加到组中,反之亦然。关联表包含“group_id”和“action_id”列,因此两个实体都指定了“hasmanytomany”关系。现在,如何从两端添加/删除项目,即,
newGroup.Actions.Add(newAction);
和
newAction.Groups.Add(newGroup);
从文档中,指定 inverse 只允许从一端进行修改。
我有两个具有 m:n 关系的实体、组和动作。从 UI 中,可以将操作添加到组中,反之亦然。关联表包含“group_id”和“action_id”列,因此两个实体都指定了“hasmanytomany”关系。现在,如何从两端添加/删除项目,即,
newGroup.Actions.Add(newAction);
和
newAction.Groups.Add(newGroup);
从文档中,指定 inverse 只允许从一端进行修改。
我在为我执行此操作的实体上使用添加和删除方法。下面是用户/组方案的示例。
public class Group : Entity
{
//Constructors and properties omitted
public virtual void AddUser(User user)
{
if (users.Contains(user))
return;
users.Add(user);
user.AddGroup(this);
}
public virtual void RemoveUser(User user)
{
if (!users.Contains(user))
return;
users.Remove(user);
user.RemoveGroup(this);
}
}