2011-01-11 23 views
0

EFだけでなくLINQの使用を開始しました。EF 4.0 LINQ 1対多/多対1

PublicUtility(UtilityCode)* ----> 1(UtilityCode)ユーティリティ(UtilityCode)1 -----> *(UtilityCode)UtilityDetail

私は、次のような構成でテーブルのセットを持っています

私はSQLでクエリを持っています。他のビジネスルールに基づいて、このクエリは1の値またはNULLを返します。


@UtilityCode = UtilityDetail.UtilityCode ON
UtilityDetail
INNER JOIN PublicUtility FROM

PublicUtility.SubdivisionCode = @SubdivisionCode AND
PublicUtility.Year = @PublicUtilityYear AND
PublicUtility.UtilityCode = UtilityDetail SELECT .UtilityCode
WHERE
UtilityDetail.DebtPurposeCode = @DebtPurposeCode

エンティティにLINQを使用してこれをどのように書き直すことができますか?

答えて

0
using (YourObjectContext ctx = new YourObjectContext()) 
{ 
    var code = (from ud in ctx.UtilityDetails 
       join pu in PublicUtility on ud.UtilityCode equals pu.UtilityCode 
       where ud.DeptPurposeCode == [code_value] && pu.SubdivisionCode == [subdivcode_value] && pu.Year == [year_value] 
       select new {ud.UtilityCode}).FirstOrDefault(); 
} 
+0

ありがとうございます。それが私のクレイジーを運転していた。私はPublicUtility.Utility.UtilityDetailsからUtilityDetailsを参照しようとしていましたが、どこにも行きませんでした。私はT-SQLで考えないと困っている... –