我在数据库中有一个Code
类型的varchar
列,其中只包含数字。我使用下面的方法来获得下一个代码,它工作正常。但我更喜欢所有的计算和类型转换在SQL方面完成,以减少开销。使用下面的代码,我检索所有不需要的数据。任何想法真的很感激。使用LINQ查询来获取varchar列的最大值
public string GetNextCode(int type)
{
var codeList = (from o in ObjectQuery
where o.Type == Type
select o.Code).ToList<string>();
List<int> list = codeList.Select(int.Parse).ToList();
int nextDL = list.Max() + 1;
return nextDL.ToString();
}
哦,不过这是不行的,因为例如' “111” <99>'while'111> 99' – Yalda
是的,这是有道理的,我读了一个事实,即它是一个varchar而不是int,orderBy会将它按字母顺序排列,因此orderByDescending中的99会比1000更高。 – JanR