【发布时间】:2015-04-14 07:32:57
【问题描述】:
我正在将我们的项目从 .NET 3.5 迁移到 .NET 4.0。 以前我曾经能够在类型化数据集上使用语句,例如:
dr = myDataSet.SomeTable.FirstOrDefault(Function(x) x.IdSome = targetId)
然而,这不再有效。
我已经尝试添加对System.Data.DataSetExtensions 的引用并修改代码以使用.AsEnumerable() - 但是,这只会产生DataRow,而不是SomeRow(将包含在SomeTable 中)
dr = myDataSet.SomeTable.AsEnumerable().FirstOrDefault(Function(x) x.IdSome = targetId)
产生的错误是 'IdSome' is not a member of 'System.Data.DataRow' - 由于同样的原因,其他一些语句失败并返回 Overload resolution failed。
如何在 .NET 4.0 中保留类型安全、非魔法的字符串代码?
【问题讨论】:
-
您是使用数据集来访问数据库还是某些 xml?
-
数据库 - 但过滤器可能发生在客户端(架构:Windows 窗体客户端、远程处理、ADO.NET 数据适配器。不会很快改变,所以 DataSet 会保留一段时间)。 IE。我不能只使用 LINQ to XML。
-
您是否引用了适当的程序集并导入了适当的命名空间?
标签: .net vb.net linq-to-dataset