У меня есть некоторые данные в наборе данных, и я обычно выбираю запись, как показано ниже.
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, я ожидал бы сделать следующее, но получаю волнистую строку под ключевым словом Поле .
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 и никогда не сталкивался с этой проблемой.
Есть предложения?
EDIT
Я получаю ошибку компилятора:
ошибка CS0019: оператор '==' нельзя применить к операндам типа
'string' и 'char'
... Но поле TechKey определенно является строкой в наборе данных.