1

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] 属性を適用するとまったく機能しないことです。
データベースによって生成されたモデルにフィールドをカプセル化し、属性を適用すると、完全に機能します。ただし、データベースが変更されるたびに、手動でマージする必要があります。

どんな助けでも大歓迎
です 事前に感謝します

4

1 に答える 1

2

これはおそらく制限ですFileHelper(おそらくリフレクションを使用してシリアル化されたクラスの属性を検索し、メタデータ バディ クラスを認識しません)。

そのための Model クラスを作成し、AutoMapper を使用してデータをコピーし、属性を Model クラスに適用してみてください。生成されたコードを編集すると、エラーが発生しやすくなります。

于 2011-11-29T09:18:46.743 に答える