在Linq to Entities / Entity SQL中选择Max with type conversion

时间:2009-06-29 06:09:51

标签: linq entity-framework select type-conversion max

我正在尝试为遗留数据库创建一些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));

2 个答案:

答案 0 :(得分:3)

这有效......

String[] numbers = new String[] { "2", "34", "5", "23", "5", "1" };

var max = numbers.Max(x => Int32.Parse(x));

答案 1 :(得分:3)