-1

私はエンティティ フレームワークに不慣れで、現在、このプログラミング パラダイムに慣れようと懸命に努力しています。Entity SQLで書きたいこのクエリがあります。

SELECT      f.id,  f.personName,   c.Category,    j.busCode,    s.description,         f.StartDate, (SELECT COUNT(*) FROM Analysis WHERE id = f.id) As numOfAnalysis
FROM forms f
INNER JOIN Jobs j  ON f.id = j.id
INNER JOIN category c  ON j.categoryid = c.categoryid
INNER JOIN stage s  ON f.stageid = s.stageid
WHERE j.busCode NOT IN ('xyz', 'YYY')
ORDER BY startDate

2 つのテーブルからレコードを取得できますが、ナビゲーション プロパティを使用して 3 番目のテーブルを追加するとすぐに、エラー テーブル カテゴリが現在のコンテキストに読み込まれていません。私は.net 3.5を使用しています。EDM V2 には外部キーがなく、テーブルの関係をたどる唯一の方法はナビゲーション プロパティであることに注意してください。

どんな助けでも大歓迎です。

ありがとう

Coder74

4

1 に答える 1

0

使用する場合は、この Linq クエリをマウントできるはずです。まとめてみましたが、急いでいて、そのようなテストは複雑ではありません。このリファレンスをサポートとして使用できます: http://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b

var result  = (from f in forms
            join j in Jobs on f.id equals j.id
            join c in Category on j.categoryid equals c.categoryid
            join s in stage on f.stageid equals s.stageid
            join a in Analysis on a.id equals f.id
            where !(new int[] { 'xyz', 'YYY' }).Contains(j.busCode)
            orderby f.StartDate
            select {
                id =f.id,
                personName = f.personName,   
                Category = c.Category,
                busCode = j.busCode,
                description = s.description,
                StartDate = f.StartDate, 
                numOfAnalysis = a.Count()
            }).ToList()

フリオ・スペイダー

W&S インターネットのソリューション

于 2013-11-21T19:33:00.420 に答える