2011-01-11 7 views
0

Gerade mit der Verwendung von LINQ sowie EF.EF 4.0 LINQ eins zu viele/viele zu eins

Ich habe eine Reihe von Tabellen in der folgenden Konfiguration:

PublicUtility (UtilityCode) * ----> 1 (UtilityCode) Utility (UtilityCode) 1 -----> * (UtilityCode) UtilityDetail

Ich habe eine Abfrage in SQL. Basierend auf einigen anderen Geschäftsregeln gibt diese Abfrage entweder 1 Wert oder NULL zurück.

SELECT
@UtilityCode = UtilityDetail.UtilityCode
FROM
UtilityDetail
INNER JOIN PublicUtility ON
PublicUtility.SubdivisionCode = @SubdivisionCode UND
PublicUtility.Year = @PublicUtilityYear UND
PublicUtility.UtilityCode = UtilityDetail .UtilityCode
WHERE
UtilityDetail.DebtPurposeCode = @DebtPurposeCode

Wie könnte ich das mit LINQ to Entities neu schreiben?

Antwort

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

Danke. Das hat mich verrückt gemacht. Ich habe versucht, die UtilityDetails von den PublicUtility.Utility.UtilityDetails zu referenzieren und kam nirgendwohin. Ich habe Probleme, nicht in T-SQL zu denken ... –