【发布时间】:2021-05-27 22:13:57
【问题描述】:
在我的 LINQ 查询中,我正在处理一个表,该表的值 id 是可为空的 int。我在查询之外有一个值 currentId,它是一个 int。我需要对表进行查询以获取 id.Equals(currentId) 所在的条目。但它一直给我一个 System.NotSupportedException。
我和我的搭档正在努力寻找解决这个问题的方法,因为我们在谷歌上搜索到的所有帖子都是可空值不是来自条目本身的情况。
我们的代码大致是这样的:
var val = (from row in db.OurTable where row.id.Equals(currentId)).SingleOrDefault();
【问题讨论】:
-
能否请您添加错误的全文?你也试过
row.id == currentId吗? -
我已经尝试使用 == 运算符代替。我得到的错误如下(有一些修改):
System.NotSupportedException: 'LINQ to Entities does not recognize the method 'OurTable get_Item(Int32)' method, and this method cannot be translated into a store expression.'在这种情况下,OurTable 指的是它的类名。 -
这个错误信息很奇怪...如果row.id是int,合理的错误信息应该是'LINQ to Entities不识别方法'Int32 get_Item( Int32)' 而不是 OurTable,您能再检查一下 row.id 的类型吗?
-
仔细检查,它的类型是 Nullable
-
您能否添加
OurTable的定义。
标签: asp.net-mvc linq entity-framework-6