0

Asp.net mvc Web アプリケーションとエンティティ フレームワークに取り組んでいます。私は次の表を持っています:-

  • ユーザーテーブル (ユーザーID、名前、年齢など)

  • グループ テーブル (GroupID、名前、説明など)

  • および UserGroup テーブル。(ユーザーID、グループID)

ただし、 UserGroup テーブルは UserID と GroupID の両方を格納する純粋な多対多の関係であるため、エンティティ フレームワークを使用してマップされませんでした。GroupID と USerID がわかったので、それらの間の関係をどのように設定できますか。次のようなことをする必要があります:-

 Group.Where(a=.a.GroupID).singleordefualt().User.ADD(//something here !!!)
4

1 に答える 1

1
var group = db.Groups.Find(groupId);
if (group != null)
{
    group.Users.Add(user); // add user to existing users
    db.SaveChanges();
}

また

user.Groups.Add(group); // add group to existing groups
db.SaveChanges();

ユーザーを置き換えたい場合は、新しいコレクションを割り当てるだけです:

group.Users = new List<User> { user };
db.SaveChanges();

ユーザーをそのグループから削除し、このユーザーを他のグループに追加する場合:

var user = db.Users.Find(userId);
user.Groups.Clear();
var group = db.Groups.Find(groupId);
user.Groups.Add(group);
db.SaveChanges();

グループから一部のユーザーを削除する場合:

var group = db.Groups.Find(groupId); // get your group
var userToRemove = group.Users.Last(); // select user, e.g. last one
group.Users.Remove(userToRemove); // remove user from group users
db.SaveChanges(); // save changes
于 2013-07-19T11:52:24.763 に答える