したがって、私はそれぞれの役割IDにユーザーを割り当てるLNK_USER_ROLE
という表があります。Foreachでは、リストからLINQに複数の列を挿入します
この場合、「ADMIN」ロールと「USER」ロールの両方をユーザーに割り当てようとします。したがって、私は自分のロールテーブルからロールのIDを照会して、ユーザーIDとともに私のLNK_USER_ROLE
テーブルに追加することができます。
var db = new MySqlContext();
List<int> RoleId = db.ROLES.Where(u => u.ROLE_NAME == "ADMIN" && u.ROLE_NAME == "USER").Select(u => u.ROLE_ID).ToList();
foreach(int id in RoleId)
{
LNK_USER_ROLE Roles = new LNK_USER_ROLE();
{
Roles.ROLE_ID = id;
Roles.USER_ID = db.USERS.Where(u => u.EMAIL == model.Users.EMAIL && u.NAME == model.Users.NAME).Select(u => u.USER_ID).Single();
};
db.LNK_USER_ROLE.Add(Roles);
}
db.SaveChanges();
(LNK_USER_ROLE
ROLE_ID
がROLE
デシベルでID
への外部キーです)残念ながら、何も起こりません!あなたが見ることができるように、私はおそらく、このコードが成功した場合、私のテーブルに2行追加する必要があります..しかし、私はどのようにForeach
を使用して行を挿入する必要がありますかわからない、私はカントに一致する以前の質問を見つけるようです必要。
コードをステップバイステップでデバッグしようとしましたか? – Pikoh
どこのステートメントを少し変更して||ロールIDを選択するときは、&&(And)の代わりに(Or)を使用します。つまり、.Where(u => u.ROLE_NAME == "ADMIN" || u.ROLE_NAME == "USER") ' – Valeklosse
しかし、両方のロール名が必要です。または、そのうちの1つだけを選択しますか? –