複数の列をマッピングしてDapperを入力する

c# dapper

質問

私はこのような選択をマップしようとしています:

SELECT id, total, total_currency FROM sometable

idはVARCHAR、合計は数値、通貨はchar(3)

このようなエンティティに:

class MyEntity
{
     string Id { get; set; }
     Money total { get; set; }
}

お金には、署名付きのコンストラクタ(decimal amount, string currencyId)ます。 Dapperでどのように達成するのですか?

人気のある回答

親/子エンティティの関係がある場合、マルチマッピングを使用する必要がありますMoneyは、 MyEntity子プロパティであるクラスです。

// assumes connection has already been created

string sql = "SELECT id, total, total_currency FROM sometable";

IEnumerable<MyEntity> result = conn.Query<MyEntity, Money, MyEntity>(
    sql,
    (entity, money) => { entity.Money = money; return entity; },
    spliton: "total");

詳細については、次を参照してください。Dapperでのマルチマッピングの正しい使い方

Moneyクラスのカスタムパラメータが必要な場合は、汎用メソッドを使用し、動的結果を実際の結果に投影することをお勧めします。 See: Dapperでカスタムコンストラクタを呼び出しますか?



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ