どのようにして、1つまたは2つのオブジェクトをダッパーで作成できますか?

c# dapper sql-server

質問

私は4列のデータを持つ行を持っています。列1-2のデータからオブジェクトAを作成したいと思います。データが列1-2にない場合は、列3-4を使用してオブジェクトBを作成します。まれに、すべての列にデータがありますが、列2と列4のデータは一致しません。その場合、オブジェクトAとオブジェクトBを返したいと思います。

マルチマッピングを使ってこれをdapperで行う方法はありますか?または、私はすべての4つの列であるオブジェクトCを返す必要がありますし、実際に必要なオブジェクトAとBIを作成するためにデータをポストしますか?

public class A {
  public long ID {get;set;}
  public long Value {get;set;}
}
public class B {
  public long ID {get;set;}
  public long Value {get;set;}
}

オブジェクトAとBは互いに関連していません(つまり、AにはBのリストが含まれていません)。だから、私はどのように進めるべきか不明です。

受け入れられた回答

データがIdで分割されている場合は、ラッパー・タイプを使用して2つの値を表すと、すでに動作しているはずです。たとえば、 Tuple<,>を使用すると、次のようになります。

var data = conn.Query<A, B, Tuple<A, B>>(sql,(a, b) => Tuple.Create(a, b), args);


ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow