我有三個表具有以下,簡化架構:LINQ to SQL的多對多的問題
Articles
articleID
ArticleAuthors
articleID
authorID
Authors
authorID
一篇文章可以有多個作者。
鑑於輸入文章,我想找到輸入文章的作者寫的所有其他文章。 所以,如果喬和吉爾寫第1條,我想要喬或吉爾寫的所有其他文章。我需要的東西,以滿足以下功能:
public Article[] articlesBySameAuthors(Article article) {}
在SQL中,我只是這樣做:
SELECT * FROM Articles A
INNER JOIN ArticleAuthors AA ON A.articleID = AA.articleID
WHERE AA.authorID IN (SELECT authorID FROM ArticleAuthors
WHERE articleID = @articleID) AND A.articleID <> @articleID;
但我真的想知道如何做到這一點的LINQ to SQL。
謝謝。
這不起作用。它返回與原始文章相同的文章乘以原作者的數量。蝙蝠,你說a.ArticleID = article.ArticleID,這將限制我們到原來的同一篇文章。最後你說選擇作者,我認爲你的意思是選擇一個。 – Calvin 2011-12-29 00:06:28
@Calvin當然你是對的,我在創建查詢時忽略了目標。請參閱編輯過的文章,瞭解其他幾種方法。 – phoog 2011-12-29 14:30:59