0
Dapper
の使用を検討中です。既存のコードベースでは、マスタ/ディテールオブジェクトは個別にロードされます。通常、これは、すべてのマスター・レコードに対して1つのSQL文が実行され、詳細レコードごとに1つのSQL文が実行されることを意味します。Dapperコール後のマスター/詳細レコードのマップ
パフォーマンスを改善し、移行を容易にするために、私はDapper
を使用して2つの呼び出しを行うと一緒に結果をステッチしたいと思います:
public class Zoo
{
Guid Id { get; set; }
string Name { get; set;}
IList<Monkey> Monkeys { get; set; }
}
public class Monkey
{
Guid Id { get; set; }
Guid ZooId { get; set; }
string Name { get; set; }
bool DeservesBanana { get; set; }
}
var sqlZoos = "SELECT * FROM Zoos"
var Zoos = connection.Query(sqlZoos)
var sqlMonkeys = "SELECT * FROM Monkeys"
var Zoos = connection.Query(sqlZoos)
foreach(var zoo in Zoos)
{
zoo.Monkeys = Monkeys.Where(x => x.ZooId = zoo.Id).ToList();
}
私は置き換えに使用することができますDapper
でヘルパーメソッドか何かがありますforeach
。代わりにAutoMapper
のようなものを使うべきですか?または、.NETライブラリを使用してこれを実現するより良い方法がありますか(foreach
ループよりも)ですか?
感謝を。最終的に、私は単一のSELECT文を実行するためにコードを書き直したいと思います。しかし、書き直す必要のある_lot_コードがあります。複数の問い合わせの後にデータをつなぎ合わせる最も簡単な方法を考案すれば、最小量の摩擦で「Dapper」を導入することができます – Mitkins