0
int maxTrackId = dataContext.TicketTracks.Max(T => T.TrackId);
生成以下SQL
代碼:
SELECT MAX([t0].[TrackId]) AS [value]
FROM [dbo].[TicketTracks] AS [t0]
但是,如果表是空的,我得到的空值不能被分配到非空的變量異常saing。
然後我寫這篇文章的代碼,明確地告訴我需要的SQL提供最大或空:
int? maxTrackId = dataContext.TicketTracks.Max(T => (int?)T.TrackId);
而且它適用於非空的SQL列細,給我回去要麼null
或數。但產生的SQL
代碼是那樣的陌生:
SELECT MAX([t1].[value]) AS [value]
FROM (
SELECT [t0].[TrackId] AS [value]
FROM [dbo].[TicketTracks] AS [t0]
) AS [t1]
所以這似乎不可思議,尤其是有兩個SELECT
秒。有什麼辦法可以繞過這個嗎?
爲什麼你認爲兩個選擇沒有性能差異? – AgentFire
我更全面地回答了這個問題。 – usr
@usr您能否將我們鏈接到答案並向我們顯示數字?這將是最有幫助的。 –