我有三個表:加入,集團通過和其中使用LINQ
- 請求(的requestId,用戶id,languageId,文本,timePosted)
- RequestLanguages(的requestId,languageId)
- UserLanguages(用戶id,languageId) - 所有語言的用戶知道
在請求languageId是語言上熱曲est被問到,但是在RequestLanguages中languageId是用戶想要翻譯的語言。用戶想要翻譯的語言很少,而不僅僅是一種。
我需要在Linq中進行查詢,在該查詢中我將選擇所有語言請求。用戶知道需要翻譯的語言用戶也知道(需要成爲一個列表)。
我使用了group by,但我並不擅長這一點。我不知道如何在requestId上加入請求和請求語言,並將所有languageId用戶想要翻譯成列表!
我想是這樣的:
using (var context = new WordsEntities())
{
List<short> languagesIKnow = (from ul in context.UserLanguages
where ul.userId == userId
select ul.languageId).ToList();
var requests = (from rl in context.RequestLanguages
group rl.languageId by rl.requestId into p
select new
{
languageTold = p.ToList(),
reqId = p.Key
}
);
List<ShowRequests> list = new List<ShowRequests>();
foreach (var r in requests)
{
ShowRequests Req = from req in context.Requests
where req.requestId == r.reqId
&& languagesIKnow.Exists(y => y == req.languageId)
&& languagesIKnow.Intersect(r.languageTold).Any()
select new ShowRequests
{
languageAsk = req.languageId,
languageTold = r.languageTold,
userId = req.userId,
text = req.text,
picture = req.pictureExtension,
audio = req.audioExtension,
timePosted = req.timePosted
};
list.Add(Req);
}
,但我不能指定所需物品作爲類ShowRequests ..
一些樣本數據(輸入和輸出)會理解你的描述是有幫助的。 –
這個老問題似乎被放棄了,對以下兩個答覆帖子提供的反饋很少。我認爲現在可以關閉爲「不清楚」。 – halfer