2

我正在尝试为遗留数据库创建一些 CRUD 功能并将实体框架用作 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));
4

2 回答 2

3

这有效...

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

var max = numbers.Max(x => Int32.Parse(x));
于 2009-06-29T06:39:04.277 回答
3

基本类型的 LINQ to Entities 支持 Cast 方法。用那个。

于 2009-06-29T12:51:29.910 回答