我正在尝试为遗留数据库创建一些CRUD功能,并使用Entity Framework作为ORM工具。一个表“站点”具有Guid类型“Id”列,用户从未看到该列,并且用户使用整数类型“SiteId”来识别站点。
上帝知道数据库中数字SiteId列的类型是varchar(10)是什么原因,但是其中的每个SiteId都是一个整数,所有未来的SiteId也都是整数。
为了生成一个新的,唯一的整数类型的SiteId,我如何使用Entity SQL或Linq to Enities实际上做'SELECT MAX(SiteId)?
换句话说,如何将列中的每个值从varchar(10)转换为int并从该集合中选择最大值?
这看起来很有希望,但linq无法将解析转换为“存储过程”......
int x = entities.Sites.Max(s => int.Parse(s.SiteId));
答案 0 :(得分:3)
这有效......
String[] numbers = new String[] { "2", "34", "5", "23", "5", "1" };
var max = numbers.Max(x => Int32.Parse(x));
答案 1 :(得分:3)