C# LinQ无法识别方法“int32到int32”
我一直在Google中搜索:linq to entities无法识别方法int32到int32。 我的数据库中有一个类似varchar的列表: 一,二,三,四,五,六,七 我需要对列表进行排序并获得最大值。我正在使用它,但它不起作用,我也看到了其他解决方案,但没有任何效果。这是我的疑问:C# LinQ无法识别方法“int32到int32”,c#,linq,C#,Linq,我一直在Google中搜索:linq to entities无法识别方法int32到int32。 我的数据库中有一个类似varchar的列表: 一,二,三,四,五,六,七 我需要对列表进行排序并获得最大值。我正在使用它,但它不起作用,我也看到了其他解决方案,但没有任何效果。这是我的疑问: var query= dbcontext.NV_Users.OrderBy(p => Convert.ToUInt32(p.code)).ToList().Max(); 我尝试了一个正常的查询,但也不起
var query= dbcontext.NV_Users.OrderBy(p => Convert.ToUInt32(p.code)).ToList().Max();
我尝试了一个正常的查询,但也不起作用:
var query= from _NV_Field in dbcontext.NV_Users
orderby Convert.ToInt32(_NV_Field.code) ascending
select _NV_Field.code;
在这里提问之前,我一直在疯狂地搜索Google。自从您使用.ToList以来,您可以更改功能的顺序:
var query= dbcontext.NV_Users.ToList().OrderBy(p => Convert.ToUInt32(p.code)).Max();
最后我找到了解决办法。我需要转换选择框上的字段
var consulta = from _NV_Fabricantes in dbcontext.NV_Fabricantes.ToList().OrderBy(p => Convert.ToInt32(p.codigo))
select Convert.ToInt32(_NV_Fabricantes.codigo);
真正地如果是一个大列表,最好对数据库进行排序。虽然这确实可以避免错误,但OrderBy调用Max时仍然毫无意义,因为Max返回一个值。@Rawling如果列表那么大,则根本不应从DB中获取数据。由于OP已经使用ToList,因此可以假设数据库中的项目数量相对较少。另外,在这种情况下,排序实际上是毫无意义的。@ken2k在复杂类型上ToList和Max,Max出现了很多奇怪的情况,所以我要指出,重新排序可能不会有什么帮助。我真的对这里的所有评论感到愤怒。ToList应该与cotion一起使用,因为它可能导致获取可能不需要的数据。马克斯也困扰着我。我真的知道有些情况下OP会隐藏我们的信息,所以我不想太多地更改他的查询。你为什么要使用.Max?你想要完成什么,即你想要的结果的文本描述,你能提供吗?