我正在尝试映射选择如下:
SELECT id, total, total_currency FROM sometable
id是VARCHAR,total是数字,货币是char(3)
进入这样的实体:
class MyEntity
{
string Id { get; set; }
Money total { get; set; }
}
钱当然有带签名的构造函数(decimal amount, string currencyId)
。我如何在Dapper中实现这一目标?
如果您有父/子实体关系,则需要使用多映射,re: Money
是一个MyEntity
子属性的类:
// assumes connection has already been created
string sql = "SELECT id, total, total_currency FROM sometable";
IEnumerable<MyEntity> result = conn.Query<MyEntity, Money, MyEntity>(
sql,
(entity, money) => { entity.Money = money; return entity; },
spliton: "total");
有关更详细的说明,请参阅: 在Dapper中正确使用Multimapping
如果您需要Money
类的自定义参数,那么建议您只使用泛型方法并将动态结果投影到实际结果中。请参阅: 使用Dapper调用自定义构造函数?