You need to enable JavaScript to run this app. 项目引用DataSetExtensions及System.Data时扩展方法无法使用问题
优惠活动
大模型
产品
解决方案
定价
更多

项目引用DataSetExtensions及System.Data时扩展方法无法使用问题

解决方案
  • 首先确认代码文件顶部已添加using System.Linq;指令:ToList()是System.Linq命名空间下的通用扩展方法,并非System.Data.DataSetExtensions的内置方法,老版本项目默认不会自动引入该命名空间。
  • 核对System.Data.DataSetExtensions引用的版本匹配性:打开该引用的属性面板,确认运行时版本为v4.0.30319,和项目目标框架.NET 4.7.1对应,避免引用低版本.NET Framework对应的程序集。
  • 检查项目配置文件(.csproj)的引用配置:卸载项目后编辑.csproj文件,找到System.Data.DataSetExtensions的引用节点,删除节点下的<HintPath>子节点,保留最简引用配置<Reference Include="System.Data.DataSetExtensions" />,让VS自动适配当前框架的官方程序集,避免老项目迁移时遗留的硬编码旧路径指向错误的dll。
  • 清理配置文件中的错误程序集重定向:打开app.config/web.config,查找<assemblyBinding>节点下是否存在System.Data.DataSetExtensions相关的重定向规则,若版本号不匹配直接删除该规则,VS会自动生成正确的重定向配置。
  • 排查扩展方法冲突:如果上述配置都正确,可以尝试完整调用方法测试编译:
var list = System.Linq.Enumerable.ToList(
    dtUserAccounts.AsEnumerable().Select(m => new UserAccount()
    {
        UserId = m.Field<string>("UserId"),
        FirstName = m.Field<string>("FirstName"),
        LastName = m.Field<string>("LastName")
    })
);

如果该写法可正常编译,说明当前代码上下文存在同名扩展方法覆盖了系统默认实现,可调整命名空间引入优先级解决。

内容的提问来源于stack exchange,提问作者mikepoole72

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 13:54:02