0

それぞれにいくつかの仮想プロパティを含むPOCOクラスがたくさんあります。このようなもの:

public class Policy
{
    public int Id { get; set; }
    public int EntityId { get; set; }
    public int ProgramId { get; set; }

    public string PolicyNumber { get; set; }
    public DateTime EffectiveDate { get; set; }
    public DateTime ExpirationDate { get; set; }

    public virtual Entity Entity{ get; set; }
    public virtual Program Program { get; set; }
    public virtual ICollection<Transaction> Transactions { get; set; }
}

作業を行うDapper.Extensionsには、これらのクラスごとにマッピングを作成する必要がありますが、これで問題ありません。私の問題は、クラス内にプロパティがある場合、それらを明示的にignoredvirtualとしてマークする必要があることです。これは私がいつも忘れていることです。

public sealed class PolicyMapper : BaseMapper<Policy>
{
    public PolicyMapper()
    {
        Map(p => p.Entity).Ignore();
        Map(p => p.Program).Ignore();
        Map(p => p.Transactions).Ignore();
        AutoMap();
    }
}

Dapper.ExtensionsPOCO クラスにマップされたときに、ライブラリが仮想プロパティを自動的に除外する場合、私にとって何が素晴らしいでしょうか。Automapper同様のことを行うための拡張機能があります(リンク)。Dapper.Extensionsライブラリでそれを行う方法はありますか?おそらく次のようなものです:

public sealed class PolicyMapper : BaseMapper<Policy>
{
    public PolicyMapper()
    {
        IgnoreAllVirtual();
        AutoMap();
    }
}
4

1 に答える 1