MVC 3 с filehelper - PullRequest
       37

MVC 3 с filehelper

1 голос
/ 29 ноября 2011

Я использую filehelper 2.9.9 в http://teamcity.codebetter.com/project.html?projectId=project41 для экспорта моих данных в формат 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 Ответ

2 голосов
/ 29 ноября 2011

Это, вероятно, ограничение FileHelper (вероятно, он просто использует отражение для поиска атрибутов в сериализованном классе и не знает о классе друзей метаданных).

Попробуйте создать для него класс Model, скопируйте данные с помощью AutoMapper и примените ваш атрибут к классу Model. Редактирование сгенерированного кода подвержено ошибкам, ИМХО.

...