0

私のデータベースには私はUserテーブルがあり、次にロールのようなものがあります。それらの間には多対多の結合表があります。誰かが新しいユーザーを作っているとき、彼らはユーザーにとって必要な役割を選択できる必要があります。しかし、EFでは私のユーザをこの他のテーブルに関連付けることはできません。私はドロップダウンリストを持っていましたが、その役割が選択されたときに、PKIDが正しい入力ではないと言う不正なエラーが発生しました。 EFの仕組みや少なくともMVC 3へのリンク方法については、何か不足している必要があります。EFを使用するASP.NET MVC 3は、多対多の結合テーブルを認識しません

答えて

1

多くの場合、多くの関係がある場合、2つの外部キーを保持するために別のテーブルが必要です。

だからあなたが持っているかもしれません:

User 
------ 
ID 
Name 


Role 
------ 
ID 
Name 


UserRoles 
------ 
ID 
UserID 
RoleID 

は、なぜあなたはここで多くの関係に多くを必要としますか?

public IQueryable FindUsers() 
{ 
    MyEntities db = new MyEntities(); 
    return db.Users.Where(u => u.IDRoleType == 0); 
} 

それとも

public IQueryable FindUsers() 
{ 
    MyEntities db = new MyEntities(); 
    return db.Users.Where(u => u.Role.RoleType == "Admin"); 
} 
+0

:私があなただったら、私は、ユーザーが役割を持つことができ、あなたのコードでは、あなたのような何かを行うことができる方法

User ------ ID Name IDRoleType Role ------ ID RoleType 

のようなものを作成したいです洞察をお寄せいただきありがとうございますが、ユーザーは複数の役割を持つため、表には多対多のニーズがあります – James

関連する問題