1

こんにちは、エンティティ フレームワーク 5 と mvc4 を使用しており、エンティティ フレームワークの関係に苦労しています。

User、Role、および UserRole テーブル がありますSQL テーブル モデルは Entity フレームワークで作成されます

ここに画像の説明を入力

ユーザーとロールを保存するために使用するコードは次のとおりですが、これは機能しません ユーザーとロール オブジェクトのプロパティは、このメソッドに渡される前に設定されます

public void saveNewUser(User u, Role r)
{
    using (FormValueEntities db = new FormValueEntities())
    {
        u.Roles.Add(r);
        r.Users.Add(u);
        db.SaveChanges();
    }
}

新しいユーザーを作成し、同時に役割を設定するにはどうすればよいですか?

4

4 に答える 4

1

作成しているコンテキストにユーザーとロールが関連付けられていないためだと思います。したがって、次のようなことを行う必要があります。

User newUser = new User(){ ... Set proprties ...};

db.Users.Add(newUser);

newUser.Roles.Add(r);

db.SaveChanges(); 

明示的に双方向にリンクを追加する必要はないことに注意してください。

于 2012-10-15T10:14:17.527 に答える
0

メンバーシップ API の使用を試すことができます。

                    const string adminRole = "Administrator";
                    const string adminUserName = "Admin";
                    WebSecurity.CreateUserAndAccount(adminUserName, "123456", null, false);
                    Roles.CreateRole(adminRole);
                    Roles.AddUsersToRole(new string[] { adminUserName }, adminRole);
于 2012-10-15T11:15:55.813 に答える
0

UserRoleエンティティにテーブルを含めることを忘れないでください。デザイン ビューにドラッグ アンド ドロップするだけです。

于 2012-10-15T10:10:55.290 に答える
0

まず、Entity Framework を更新する必要があります。

そしてコード:

public void saveNewUser(User u, Role r)
{
    using (FormValueEntities db = new FormValueEntities())
    {
        db.Role.Add(r);
        db.User.Add(u);
        db.SaveChanges();
    }
}
于 2012-10-15T10:17:09.067 に答える