0

Code FirstEntityFrameworkで次のエンティティを設定しています。

 public class User
 {
    public int UserId { get; set; }
    public virtual ICollection<Task> Tasks { get; set; }
 }

 public class Task 
 {
     public int TaskId { get; set; }
     public virtual ICollection<User> Users { get; set; }
 }

特定のユーザーに対して、そのユーザーに割り当てられているすべてのタスクを返し、それらのタスクにタスクに割り当てられているすべてのユーザーが含まれるクエリを作成するにはどうすればよいですか。

例えば:

私には2つのタスクが割り当てられています。これらの2つのタスクは、私と別のユーザーの両方に割り当てられています。

ユーザーを取得するときに、割り当てられている両方のタスクをTasksコレクションに含める必要があります。また、タスクの1つを見ると、自分のユーザーと別のユーザーへの参照が含まれている必要があります。

遅延読み込みは使いたくありません。

私は次のようなことを試しました:

 db.Users.Include(t => t.Tasks.Include(u => u.Users)).SingleOrDefault(u => u.UserId == 1)

しかし、それは機能しませんでした

4

1 に答える 1

0

Include2番目を次のように置き換えるだけSelectです:

db.Users.Include(t => t.Tasks.Select(u => u.Users))
    .SingleOrDefault(u => u.UserId == 1);
于 2012-09-27T16:56:14.257 に答える