如何使用具有不同(嵌套)结构的 .net 对象映射小巧的行

how to map a dapper row with a .net object having a different (nested) structure

我正在寻找一种方法来将以下 table 的一行映射到以下对象 :

create table Foo (
  Id   BIGINT  IDENTITY (1, 1) NOT NULL,
  A int,
  ACertainty  float,
  B string,
  BCertainty float
  ....
)

public class FuzzyValue<T>{
    public T Value { get; private set; }
    public double Certainty { get; private set; }
}

class Foo {
  public FuzzyValue<int> A { get; set;}
  public FuzzyValue<string> B { get; set;}
  ...
}

显然,我可以使用 dapper return 动态并手动进行映射,但是这种繁琐的手动工作有点违背了 dapper 的目的,不是吗?

有没有简单的方法让 dapper 自动进行映射?

我最终写了一个不那么简单的映射器来做到这一点。

如有需要,来源here and there's a nuget package available here