【发布时间】:2010-06-30 11:59:10
【问题描述】:
我有以下简单的 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 会选择 '2' 而不是 '10')。所以,我的问题是,如何将 row.SerialNumber 的所有值转换为整数,以便 Max 可以找到最大的序列号?
【问题讨论】:
-
你不能在对 Max 的调用中进行 int 转换吗...例如 Max(row => Convert.ToInt32(row.SerialNumber))?
标签: linq linq-to-sql