MVC 3 con filehelper
-
25-10-2019 - |
Domanda
Io uso filehelper 2.9.9 a http://teamcity.codebetter.com/project .html? ProjectID = project41 per esportare i miei dati in formato CSV.
Io uso [FieldNotInFile] ignorare qualche campo non vogliono esportare.
Io uso anche MetadataType per evitare di modificare il modello, quando il mio database cambia
Ecco i miei codici:
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; }
}
}
I miei problemi qui è quando applico [FieldNotInFile] attributo nei metadati, non funziona affatto.
Quando ho incapsulare campo in modello che viene generato dal database e applicare attributi, funziona perfettamente. Tuttavia ogni volta che cambia il database, devo unirle a mano.
Ogni aiuto è apprezzato
Grazie in anticipo
Soluzione
Questa è probabilmente la limitazione di FileHelper
(probabilmente solo utilizza la riflessione per trovare gli attributi sulla classe serializzato e non è a conoscenza di classe compagno di metadati).
Prova a creare una classe modello per esso, copiare i dati utilizzando automapper e che applicano l'attributo alla classe del modello. Modificare il codice generato è quello soggetto a errori, IMHO.