Я перевожу нашу библиотеку классов DAL в .NET 4 (из .NET 3.5).Мы часто используем типизированные наборы данных, и мы часто перебираем таблицы:
foreach(var row in ds.MyTable) var tmp = row.ID;
Это больше не работает, так как дизайнер изменяет код набора данных, чтобы таблицы больше не выводились из TypedTableBase<T>
,но из DataTable
(и реализовать неуниверсальный IEnumerable
).Это то, что показывает разница.Поэтому строка имеет тип object
во время компиляции.
Кто-нибудь знает, является ли это обычным поведением?На данный момент я делаю это так, как показано ниже, но я надеюсь, что есть более элегантное решение:
foreach(var row in ds.MyTable.Cast<MyDs.MyRow>()) var tmp = row.ID;