私は一緒に実行する必要があるいくつかのクエリを持っており、私はQueryMultiple機能を使用してこれを行うことができます。DapperでMultiMappingとQueryMultipleを併用する方法はありますか?
しかし、この場合私はどのように使用できるかを知ることができませんでしたマルチマッピング。
これを達成する方法を知っている人はいますか?
私は一緒に実行する必要があるいくつかのクエリを持っており、私はQueryMultiple機能を使用してこれを行うことができます。DapperでMultiMappingとQueryMultipleを併用する方法はありますか?
しかし、この場合私はどのように使用できるかを知ることができませんでしたマルチマッピング。
これを達成する方法を知っている人はいますか?
私はこれがあなたが探しているものだと思いますが、あなたが実行しようとしているクエリの例がなくても分かりません。
var sql = @"Select *
From Parent
Left Join Child on Child.ParentID = Parent.ParentID
Where Parent.ParentID = @id
... more queries";
using(var reader = connection.QueryMultiple(sql, new {id=selectedId}))
{
var stuff = reader.Read<Parent, Child, Parent>(
(p,c)=>p.Child = c, splitOn: "ChildId");
// Continue to read from the other queries in your sql.
}
基本的SqlMapper.GridReader
のRead
Query
方法は、拡張メソッドと同様です。 splitOn
パラメータは、2つ以上のジェネリックタイプを必要とするオーバーロードのいずれかでのみ取得されます。
は別のスレッドから取られた簡単な例をtheresの:how-to-get-values-for-child-objects
var sql =
@"
select * from PROFILES where profileId= @id
select * from PROFILEIMAGES where OWNER_PROFILESIDFK = @id";
using (var multi = connection.QueryMultiple(sql, new {id=selectedId}))
{
var profile = multi.Read<Models.PROFILE>().Single();
profile.ProfileImages = multi.Read<Model.PROFILEIMAGES>().ToList();
}
各クエリは、あなたのエンティティにマッピングすることができるオブジェクトのセットを返します。
ありがとうございました。しかし、私は[Multimapping](https://github.com/SamSaffron/dapper-dot-net/blob/master/Tests/Tests.cs#L459)機能を使用する方法を探しています –
例を教えてくださいあなたは何をしようとしているのですか? – Alex
基本的に私はいくつかのフィールドをSQLで非正規化して格納します(たとえば、 ";"などで区切られたすべてのタグを持つDTagsフィールド)。 QueryMultiple(Readメソッド)を使用すると、MultiMappingクエリのように "split"パラメータを使用するオプションがありません –