5

我有一排有 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 的列表)。所以我不确定如何进行。

4

1 回答 1

4

如果数据按 分区Id,那么如果您使用包装器类型来表示这两个值,它应该已经可以工作了。例如,如果我们使用 a Tuple<,>,那么:

var data = conn.Query<A, B, Tuple<A, B>>(sql,(a, b) => Tuple.Create(a, b), args);
于 2013-02-12T09:21:24.113 回答