Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# CSVHelper未正确映射属性_C#_Asp.net Mvc 4_Csvhelper - Fatal编程技术网

C# CSVHelper未正确映射属性

C# CSVHelper未正确映射属性,c#,asp.net-mvc-4,csvhelper,C#,Asp.net Mvc 4,Csvhelper,我正在尝试使用csvHelper将对象数组写入mvc4中的csv。 我的控制器代码如下所示 public FileResult ExportAudits() { var memoryStream = new MemoryStream(); var streamWriter = new StreamWriter(memoryStream); var csvWriter = new CsvWriter(streamWriter); UserAudit[] audits = a

我正在尝试使用csvHelper将对象数组写入mvc4中的csv。 我的控制器代码如下所示

public FileResult ExportAudits()
{
   var memoryStream = new MemoryStream();
   var streamWriter = new StreamWriter(memoryStream);
   var csvWriter = new CsvWriter(streamWriter);
   UserAudit[] audits = auditDal.GetUserAudits().ToArray<UserAudit>();
   csvWriter.Configuration.RegisterClassMap<UserAuditMap>();
   csvWriter.WriteRecords(audits);
   streamWriter.Flush();
   memoryStream.Position = 0;
   return File(memoryStream, "text/csv", "Changes.csv");
}
public sealed class UserAuditMap : CsvClassMap<UserAudit>
{
    public UserAuditMap()
    {
        Map(m => m.Action);
        Map(m => m.ActionDetail);
        Map(m => m.UserProfile.FirstName);
    }
}
公共文件结果导出审核() { var memoryStream=新的memoryStream(); var streamWriter=新的streamWriter(memoryStream); var csvWriter=新的csvWriter(streamWriter); UserAudit[]audits=auditDal.GetUserAudits().ToArray(); csvWriter.Configuration.RegisterClassMap(); CSV编写者书面记录(审计); streamWriter.Flush(); memoryStream.Position=0; 返回文件(memoryStream、“text/csv”、“Changes.csv”); } 我的映射类如下所示

public FileResult ExportAudits()
{
   var memoryStream = new MemoryStream();
   var streamWriter = new StreamWriter(memoryStream);
   var csvWriter = new CsvWriter(streamWriter);
   UserAudit[] audits = auditDal.GetUserAudits().ToArray<UserAudit>();
   csvWriter.Configuration.RegisterClassMap<UserAuditMap>();
   csvWriter.WriteRecords(audits);
   streamWriter.Flush();
   memoryStream.Position = 0;
   return File(memoryStream, "text/csv", "Changes.csv");
}
public sealed class UserAuditMap : CsvClassMap<UserAudit>
{
    public UserAuditMap()
    {
        Map(m => m.Action);
        Map(m => m.ActionDetail);
        Map(m => m.UserProfile.FirstName);
    }
}
公共密封类UserAuditMap:CsvClassMap
{
公共UserAuditMap()
{
Map(m=>m.Action);
地图(m=>m.ActionDetail);
Map(m=>m.UserProfile.FirstName);
}
}
打开csv文件时遇到的问题是,只有标题包含Action、ActionDetail和FirstName,但数据行仍然包含所有值。看起来映射器没有效果。我传递给csvHelper的类不是实际的实体UserAudit,而是实体的动态代理。这似乎确实有影响。我的问题是如何正确映射动态代理实体


您能给出一个预期输出和实际输出的示例吗?我已经用您的回答编辑了问题。我最终创建了一个带有所需列的匿名对象,并且没有使用整体映射器。您能给出一个预期输出和实际输出的示例吗?我已经用您的回答编辑了问题最终创建了一个具有所需列的匿名对象,并且没有使用映射器,这将起作用。