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

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top