怎样做以下的最佳方式调用...嵌套构造从小巧玲珑的
conn.Query<Foo>(@"SELECT 1, 2, 'ZEBRA'");
说Foo
有像这样一个构造函数...
public Foo(Bar test, string zebra)
..和Bar
有一个构造函数像这样:
public Bar(int one, int two)
这不起作用,什么是最好的方法来实现e期望的结果。
怎样做以下的最佳方式调用...嵌套构造从小巧玲珑的
conn.Query<Foo>(@"SELECT 1, 2, 'ZEBRA'");
说Foo
有像这样一个构造函数...
public Foo(Bar test, string zebra)
..和Bar
有一个构造函数像这样:
public Bar(int one, int two)
这不起作用,什么是最好的方法来实现e期望的结果。
你可以尝试非通用查询API(更多详情请看这里https://stackoverflow.com/a/8995135/229949):
conn.Query(@"SELECT 1 as one, 2 as two, 'ZEBRA' as zebra")
.Select(_ => new Foo(new Bar(_.one, _.two), _.zebra);
不要尝试,如果他们有这样的构造要求,从小巧精致的直接滋润到你的真实模型。相反,水合到一个私人/内部类,然后实例化并返回适当的模型。
internal class FooBarQueryModel
{
public string Zebra { get; set; }
public int One { get; set; }
public int Two { get; set; }
}
conn.Query<FooBarQueryModel>(sql).Select(qm => new Foo(new Bar(qm.One, qm.Two), qm.Zebra));
将这种具有对 '动态' 排液一定的优势,也许性能? –
'美孚(INT第一,诠释第二,串DERP):这(新的酒吧(一,二),DERP){}' – Will