我试图拥有一个poco,其中引用的实例与其键入的基础ID具有相同的名称。
如果我执行select *
,Dapper会抛出一个解析错误。考虑到它正在尝试做什么(将返回的列与属性匹配),这是公平的。但是,我计划用lamda实例化这些引用。
替代方案似乎要明确我们带回的列,或者引入命名约定,例如
SomeClassName ref_someid {get;set;}
int someid {get;set;}.
我想知道其他人在这种情况下可能会做些什么,或者如果Dapper中有一个我缺少的选项。
示例:
cx.Query<Order, OrderType, Order>
("select o.*,ot.* from Order o join OrderType ot on
o.OrderTypeId=ot.OrderTypeId",
(a,b) =>
{a.ref_OrderType = b; return a;});
Vs的
cx.Query<Order, OrderType, Order>
("select o.* from Order o join OrderType ot on
o.OrderTypeId=ot.OrderTypeId",
(a,b) =>
{a.ref_OrderType = ALookup.GetOrderType(a.OrderTypeId); return a;});
注意:错误的问题是“订单”类中的a.ref_OrderType和a.OrderTypeId