You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET从EF 4.7.2升级到EF Core 8后LINQtoCSV引用缺失求助

解决.NET Core 8中LINQtoCSV引用丢失及安装问题

问题根源

原LinqToCsv包仅适配.NET Framework,未支持.NET Core/.NET 5+;而Threenine.LinqToCsv已从NuGet源下架或停止维护,导致无法找到安装包。

推荐解决方案:使用CsvHelper替代

CsvHelper是.NET生态中维护活跃、支持全面的CSV处理库,完美适配.NET Core 8,可完全替代原LINQtoCSV的功能。

安装CsvHelper

  • Visual Studio图形界面:右键项目 → 管理NuGet程序包 → 搜索CsvHelper → 安装最新稳定版
  • Package Manager Console命令:
Install-Package CsvHelper
  • .NET CLI命令:
dotnet add package CsvHelper

替换原CsvColumnAttribute用法

原LINQtoCSV的特性可直接映射到CsvHelper的对应特性,示例如下:

原代码(LINQtoCSV):

public class MyCsvModel
{
    [CsvColumn(Name = "用户ID", FieldIndex = 0)]
    public int UserId { get; set; }

    [CsvColumn(Name = "用户名")]
    public string UserName { get; set; }
}

替换为CsvHelper写法:

using CsvHelper.Configuration.Attributes;

public class MyCsvModel
{
    [Name("用户ID")]
    [Index(0)]
    public int UserId { get; set; }

    [Name("用户名")]
    public string UserName { get; set; }
}

基础读写示例

读取CSV:

using CsvHelper;
using System.Globalization;
using System.IO;

using var reader = new StreamReader("data.csv");
using var csv = new CsvReader(reader, CultureInfo.InvariantCulture);
var records = csv.GetRecords<MyCsvModel>().ToList();

写入CSV:

using CsvHelper;
using System.Globalization;
using System.IO;

var records = new List<MyCsvModel>
{
    new() { UserId = 1, UserName = "张三" },
    new() { UserId = 2, UserName = "李四" }
};

using var writer = new StreamWriter("output.csv");
using var csv = new CsvWriter(writer, CultureInfo.InvariantCulture);
csv.WriteRecords(records);

若需保留原LINQtoCSV语法

可使用适配.NET Core的分支包LINQtoCSV.Core,安装命令:

dotnet add package LINQtoCSV.Core

安装后直接替换命名空间引用即可,无需修改原有CsvColumnAttribute的代码:

using LINQtoCSV; // 替换原using LinqToCsv;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 06:42:08