我有以下简单的Linq查询:
(from container in Container
join containerType in ContainerType on container.ContainerType equals containerType
where containerType.ContainerTypeID == 2
select container).Max (row => row.SerialNumber)
原样,这个查询工作正常。问题是DB中的SerialNumber是nvarchar类型。当ContainerTypeID = 2时,此列中的值将始终为整数,但不是零填充。因此,在不将所有序列号转换为整数的情况下执行Max将不起作用(例如,Max将在'10'上选择'2')。所以,我的问题是,如何将row.SerialNumber的所有值转换为整数,以便Max可以找到最大的序列号?
答案 0 :(得分: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或无效值导致异常。