我在另一个解决方案中做过很多次。但在其中一个中,它不起作用。不知道为什么。
我想在某些数据表中使用Where()
。所以,我这样做,例如
int someId;
DatasetName.DatatableName.AsEnumerable().Where(x => x.id == someId);
但是在这个项目中,它无法识别lambdax => x.id == someId
为什么?我不能使用它们。智能感知,在Where
中的(
识别需要接收Func
,当我这样做时x => x.
它无法识别数据表的字段。为什么我不能做x.id
?我知道我可以使用Field<>()
(我认为这是名字),但我直接使用了很多次表达式,我认为它们更具可读性。在其他解决方案中确实可以做到这一点。
我添加了引用
using System.Linq;
using System.Data.Linq;
using System.Linq.Expressions;
它不编译,也不识别数据表的任何字段。 该项目已设置为.Net Framework 3.5
。
任何帮助将不胜感激
我假设您正在使用强类型数据集。
由于某种原因,AsEnumerable()
可能返回了IEnumerable<Object>
。尝试添加演员表:
DatasetName.DatatableName.AsEnumerable().Cast<MyRowType>().Where(x => x.id == someId);
还应确保数据表正确继承自System.Data.TypedTableBase<MyRowType>
。
dataSet.Tables[0].AsEnumerable().Where(
r => r["Col1"] == "MyValue")
可以使用 LINQ to DataSet 执行以下操作: