Linq到实体查询获取错误

本文关键字:获取 取错误 查询 实体 Linq | 更新日期: 2023-09-27 18:04:09

我正在尝试修改一个c#项目。我是vb。兽医程序员所以有一些问题,因为我是新的linq。我正试图运行Linq到实体查询。我想选择MapEast,其中town = town。我总是得到一个错误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;
}

谢谢

Linq到实体查询获取错误

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

decimal topEast = 0;

我想在这里也放一个max(1),所以它只返回最多。

不确定你想返回什么,因为你从try和catch块返回-1。如果您试图返回MapEast字段的Max值,那么您将需要Enumerable.Max,否则FirstOrDefault将根据标准返回第一项或null。