私はc#、linq、EF4を使用します。私はいくつかの航海のプロパティを持っているLinq - EF:ジャンクションテーブルを照会するには?
CmsContent
:
データベーステーブル:
CmsContents
CmsRelatedContents (Junction table)
エンティティタイプ
は、私は私の概念モデルで表され、私のデータベースに2つのテーブルを持っている
for CmsContent --> CmsContents --> Return Collection of CmsContent --> from role: CmsContent1 to CmsContent (map ToContentId)
for CmsContent --> CmsContents1 --> Return Collection of CmsContent --> from role: CmsContent to CmsContent1 (map FromContentId)
データジャンクションテーブルのデータベースに(CmsRelatedContents)が提示されている:
FromContentId ToContentId
4 3
5 2
テーブルCmsContentsで:
ContentId
2
3
4
5
IがジャンクションをフィルタリングToContentId
列に関連Objects in CmsContent
を取得するためのLINQ又はEFを使用する必要特定のテーブルFromContentId
あなたはそれを行う方法がありますか?
コードのサンプルを入力してください。これに助けてくれてありがとう!
EDIT:あなたのサポートからSOLUTION
// Option A:
var test = from cnt in context.CmsContents
where cnt.CmsContents.Any(t => t.ContentId == contentId)
select cnt;
// Option B:
var toContents = context.CmsContents.Where(r => r.CmsContents.Any(t => t.ContentId == contentId));
みんなありがとう!
そして、あなたは何をしようとしたのですか? *あなたに何かを試してみないと、特に人気がありません。 –
私はこのvarを試しましたtoContents = context.CmsContents.FirstOrDefault(cnt => cnt.ContentId == contentId && cnt.CmsContents1.Any(from => from.ContentId == contentId))。CmsContents.Any(); – GibboK
しかし、以前はコメントしていただきありがとうございました! – GibboK