2010-06-30 138 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