带有filehelper的MVC 3

时间:2011-11-29 09:10:56

标签: .net asp.net-mvc-3 export-to-csv filehelpers

我在http://teamcity.codebetter.com/project.html?projectId=project41使用filehelper 2.9.9将我的数据导出为CSV格式 我使用[FieldNotInFile]忽略一些我不想导出的字段 我还使用MetadataType来避免在数据库更改时编辑模型 这是我的代码:

public partial class book
{
    public long id { get; set; }
    public string book { get; set; }
    public virtual author author { get; set; }
}


[MetadataType(typeof(bookMetadata))]
[DelimitedRecord(",")]
public partial class book
{

}

public class bookMetadata
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    [FieldNotInFile] //It don't work at all
    public long id;

    [DisplayName("Book")]
    public string book { get; set; }
    public author author;



    [FieldNotInFile] //It don't work at all
    private author _author;

    public author author
    {
        get { return _author; }
        set { _author = value; }
    }
}

我的问题是当我在元数据中应用[FieldNotInFile]属性时,它根本不起作用。
当我将字段封装在由数据库生成的模型中并应用属性时,它完美地工作。但是每次数据库更改时,我都必须手动合并它们。

任何帮助表示赞赏 提前谢谢

1 个答案:

答案 0 :(得分:2)

这可能是FileHelper的限制(它可能只是使用反射来查找序列化类的属性,并且不知道元数据伙伴类)。

尝试为其创建Model类,使用AutoMapper复制数据并将属性应用于Model类。编辑生成的代码容易出错,恕我直言。