2013-12-14 68 views
1

我有兩個表。 請求答案與列RequestId將它們綁定在一起。 現在,我能夠通過執行類似,Request.Answers以獲取特定請求答案......獲取用戶已回答的請求

可是我怎麼用這個關係只得到請求,其中用戶ID -column的答案等於什麼?

我想實現的是用戶只能列出他已經回答的請求。

喜歡的東西:

Requests.Where(x=>x.Answers(y=>y.UserId==currentUserId)) 



    public class Request 
    { 
     [Key] 
     public int RequestId { get; set; 
     public virtual ICollection<Answer> Answers { get; set; } 
    } 

    public class Answer 
    { 
     [Key] 
     public int AnswerId { get; set; } 
     public int RequestId { get; set; } 
     public virtual Request Request { get; set; } 
     public int UserId { get; set; } 
    } 

我設法首先獲得所有AnswersId的和group by請求ID,然後遍歷結果的請求添加到列表中來解決這個問題。但是,這似乎是一個非常不方便的做法。

有沒有更簡單的方法來完成這件事?

謝謝!

回答

1

,將返回該有答案

Requests.Where(r => r.Answers.Any()) 

您沒有提供Answer實體的任何UserId財產的所有請求。但如果你有一個,然後得到所有的請求,從特定用戶的答案看起來像

Requests.Where(r => r.Answers.Any(a => a.UserId == userId)) 
+1

謝謝,它的工作原理! – Josef