我正在尝试修改一个c#项目。我是一名vb.vet程序员,所以我有一些问题,因为我是linq的新手。我正在尝试运行Linq to Entity查询。我想选择城镇=城镇的MapEast。我一直收到错误The specified cast from a materialized System.Decimal' type to the 'System.Int32' type is not valid.
。我想在这里放一个max(1),所以它只返回最高的数字。
var topEast = 0;
try
{
topEast = this._uow.Addresses
.Where(a =>
a.Town.Trim().ToUpper() == town.Trim().ToUpper())
.Select(m => m.MapEast).FirstOrDefault ();
return -1;
}
catch
{
return -1;
}
由于
答案 0 :(得分:3)
var
用于隐式类型的局部变量。在您定义var topEast = 0;
时,topEast
被隐式分配了类型int
,而不是根据您的查询分配。您可以通过将topEast
显式定义为十进制来修复它。
decimal topEast = 0;
我想把max(1)放在这里,所以它只返回 最高的数字。
不确定您要返回的是什么,因为您从-1
返回try
以及阻止阻止。如果您尝试返回Max
字段的MapEast
值,则需要Enumerable.Max
,否则FirstOrDefault
将返回第一项或基于条件返回null。