我試圖將此SQL轉換爲Linq2SQL查詢,但是,我只是將存儲過程拖到dbml中,希望有人可以做得更好。當沒有嵌套查詢的記錄時,它將返回null。將嵌套總和的sql查詢轉換爲linq2sql
SQL:
SELECT
Table1.Field1 -
ISNULL(
(
SELECT
SUM(Table2.Field1)
FROM Table2
INNER JOIN Table3 ON Table2.ID = Table3.Table2ID
WHERE Table3.Table1ID = Table1.ID
)
,0)
FROM
Table1
WHERE
(Table1.ID = @ID)
LINQ2SQL
return (from q in db.Table1s
where q.ID == id
select q.Field1.GetValueOrDefault() -
(from o in db.Table2s
join r in db.Table3s on o.ID equals r.Table2ID.GetValueOrDefault(0)
where r.Table1ID == q.ID
select Convert.ToInt32(o.Field1.GetValueOrDefault(0))).Sum()
).SingleOrDefault()
任何人都可以做的更好。
你爲什麼不滿意你發佈的Linq2SQL?它不是按照要求工作,還是它太複雜/醜陋? – kmote 2012-01-26 22:44:38
對不起,它不起作用。我無法得到正確工作的總和。 – 2012-01-26 22:45:34