linq到实体查询获取错误

时间:2014-05-20 14:21:40

标签: c# linq entity-framework linq-to-entities

我正在尝试修改一个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;
}

由于

1 个答案:

答案 0 :(得分:3)

var用于隐式类型的局部变量。在您定义var topEast = 0;时,topEast被隐式分配了类型int,而不是根据您的查询分配。您可以通过将topEast显式定义为十进制来修复它。

decimal topEast = 0;
  

我想把max(1)放在这里,所以它只返回   最高的数字。

不确定您要返回的是什么,因为您从-1返回try以及阻止阻止。如果您尝试返回Max字段的MapEast值,则需要Enumerable.Max,否则FirstOrDefault将返回第一项或基于条件返回null。