2010-06-30 294 views
1

我有以下簡單的Linq查詢:需要LINQ查詢幫助

(from container in Container 
join containerType in ContainerType on container.ContainerType equals containerType 
where containerType.ContainerTypeID == 2 
select container).Max (row => row.SerialNumber) 

原樣,這個查詢工作正常。問題是在數據庫中的SerialNumber是一個nvarchar類型。當ContainerTypeID = 2時,此列中的值將始終爲整數,但不是零填充。因此,在不將所有序列號轉換爲整數的情況下進行Max操作將不起作用(例如,Max會選擇'10'上的'2')。所以,我的問題是,如何將row.SerialNumber的所有值轉換爲整數,以便Max可以找到最大的序列號?

+0

不能在您的調用中將Max轉換放入Max ...例如Max(row => Convert.ToInt32(row.SerialNumber))? – 2010-06-30 12:08:19

回答

0

我試圖用這種方式施展,它的工作。

(from container in Container 
join containerType in ContainerType on container.ContainerType equals containerType 
where containerType.ContainerTypeID == 2 
select container).Max (row => Convert.ToInt32(row.SerialNumber)) 

但是,如果row.SerialNumber中的值大於int或無效值會導致異常。

+0

謝謝,這工作!我擔心我不能這樣做,因爲我嘗試使用Parse併發生錯誤。 – 2010-06-30 12:10:51