LINQ到数据集不再识别“字段<字符串>"”关键字
本文关键字:quot 关键字 字符串 数据集 不再 识别 字段 LINQ | 更新日期: 2023-09-27 18:14:08
我在数据集中有一些数据,我通常会选择如下所示的记录。
SnapshotDS.SnapshotRow[] previousRow =
m_PreviousSnapshot.Snapshot.Select(string.Format("TechKey = '{0}'", ChangeRow.TechKey))
as SnapshotDS.SnapshotRow[];
ChangeRow.Prev_Staff_No = previousRow[0].Staff_No;
要在LINQ中做同样的事情,我希望做以下事情,但我在Field关键字下面得到一条弯曲的线。
var pRow = from p in m_PreviousSnapshot.Snapshot.AsEnumerable()
where p.Field<string>("TechKey") == ChangeRow.TechKey
.Single()
select p;
ChangeRow.Prev_Staff_No = p.Staff_No;
我以前使用过很多次类似的LINQ,从未遇到过这个问题。
有什么建议吗?
编辑
我得到的编译错误是:错误CS0019:操作符'=='不能应用于类型的操作数'string'和'char'
…但是"TechKey"字段在数据集中绝对是一个字符串。
您可能需要添加对System.Data.DataSetExtensions.dll的引用。
缺少的方法实际上是扩展方法。
也发生了变化:
var pRow = from p in m_PreviousSnapshot.Snapshot.AsEnumerable()
where p.Field<string>("TechKey") == ChangeRow.TechKey
.Single()
select p;
:
var pRows = from p in m_PreviousSnapshot.Snapshot.AsEnumerable()
where p.Field<string>("TechKey") == ChangeRow.TechKey
select p;
var pRow = pRows.Single();
. single()(你有它的地方)没有做你想的那样。