Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过类型转换选择Linq中的最大值到实体/实体SQL_Linq_Entity Framework_Select_Type Conversion_Max - Fatal编程技术网

通过类型转换选择Linq中的最大值到实体/实体SQL

通过类型转换选择Linq中的最大值到实体/实体SQL,linq,entity-framework,select,type-conversion,max,Linq,Entity Framework,Select,Type Conversion,Max,我正在尝试为遗留数据库创建一些CRUD功能,并将实体框架用作ORM工具。一个表“Sites”有一个Guid类型的“Id”列,用户从未见过该列,还有一个整数类型的“SiteId”,用户使用它来标识站点 天知道数据库中数字SiteId列的类型为varchar(10)的原因是什么,但是其中的每个SiteId都是一个整数,将来的所有SiteId也都将是整数 为了生成一个新的、唯一的、整数类型的SiteId,我如何使用实体SQL或Linq来实现有效的“选择最大值(SiteId)” 换句话说,我如何将一列中

我正在尝试为遗留数据库创建一些CRUD功能,并将实体框架用作ORM工具。一个表“Sites”有一个Guid类型的“Id”列,用户从未见过该列,还有一个整数类型的“SiteId”,用户使用它来标识站点

天知道数据库中数字SiteId列的类型为varchar(10)的原因是什么,但是其中的每个SiteId都是一个整数,将来的所有SiteId也都将是整数

为了生成一个新的、唯一的、整数类型的SiteId,我如何使用实体SQL或Linq来实现有效的“选择最大值(SiteId)”

换句话说,我如何将一列中的每个值从varchar(10)转换为int并从该集中选择最大值

这看起来很有希望,但linq无法将解析转换为“存储过程”

这很有效

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

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

使用它。

谢谢你,伙计,L2E显然不能将解析转换成SQL,但只需额外一步就可以轻松解决。最终解决方案:字符串[]x=entities.Sites.Select(s=>s.SiteId.ToArray();int y=x.Max(i=>int.Parse(i));
String[] numbers = new String[] { "2", "34", "5", "23", "5", "1" };

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