【发布时间】:2011-05-27 00:41:34
【问题描述】:
我正在将我们的 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;
【问题讨论】:
-
这是一个报告的从 .NET 4.0 到 .NET 4.5 的错误:BUG-733077。
标签: c# .net-4.0 dataset strongly-typed-dataset