项目引用和使用系统的DataSetExtensions.数据,但扩展方法不可用



我试图在此答案https://stackoverflow.com/a/1430489/2102329中运行此代码,其对ToList()的调用依赖于引用的汇编System.Data.DataSetExtensions.dll中的扩展方法。

DataTable dtUserAccounts = sp.getDataTable();
List<UserAccount> listOfUserAccounts;
dtUserAccounts.AsEnumerable().Select(m => new UserAccount()
{
UserId = m.Field<string>("UserId"),
FirstName = m.Field<string>("FirstName"),
LastName = m.Field<string>("LastName")

}).   //<-- ToList() is not available

我已经审查了类似的情况下StackOverflow,但不能得到这个工作。我正在使用Visual Studio 2017,但原始项目将在早期版本中创建。

代码位于项目默认命名空间中公共类的公共方法中。我有正确的系统使用声明。数据了。该项目的目标是。net 4.7.1。

扩展方法不可用。在参考文献中有两个系统。Data和System.Data.DataSetExtensions(我已经删除并添加了这些以确保)。

我已经试过清理解决方案并重新构建。

我甚至在相同的VS 2017解决方案中创建了一个额外的项目,目标是相同的。net版本,这实际上是有效的,所以这是我的变通方法,但我一定在这里错过了一些东西。

您需要DataSetExtensionsDataTable.AsEnumerable似乎工作,但ToList需要using System.Linq。要编译你的代码,你需要:

using System.Linq;
.......
List<UserAccount> listOfUserAccounts = dtUserAccounts.AsEnumerable()
.Select(m => new UserAccount()
{
UserId = m.Field<string>("UserId"),
FirstName = m.Field<string>("FirstName"),
LastName = m.Field<string>("LastName")
}).ToList();

最新更新