2012-09-27 210 views
0

我有以下實體代碼第一次實體框架建立:多對多的關係 - 檢索兩端

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; } 
} 

我將如何編寫一個查詢,對於給定用戶,返回分配給該用戶的所有任務,並且這些任務包括分配給該任務的所有用戶。

例如:

我被分配了兩個任務。這兩個任務分配給我和另一個用戶。

當我檢索我的用戶時,我希望Tasks集合包含我分配的兩個任務,並且當我查看其中一個任務時,它應該有一個引用返回給我的用戶和另一個用戶。

我不想使用延遲加載。

我想是這樣的:

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

,但它沒有工作

回答

0

只需更換第二Include通過Select

db.Users.Include(t => t.Tasks.Select(u => u.Users)) 
    .SingleOrDefault(u => u.UserId == 1); 
+0

我原來試過了,但是還有一個錯誤掩蓋了這個問題。謝謝您的幫助。 – Dismissile