2
我已经看过了源代码,我没有找到任何东西(虽然我不是很擅长IL),但我想看看是否有一种方法可以提供Dapper类实例,而不是总是实例化一个新的一。原因是我们有时可能会对两个不同的存储过程进行两次单独调用 - 一次返回一个“实体”列,另一个返回其他列。但是,我们不是使用我们在第一次调用中收到的实体进行第二次查询,而是获得两个本质上相同的实体。对于Dapper来说,使用现有的实体类并将查询结果映射到现有的类会更加可取。向Dapper提供一个类实例来映射到,而不是总是实例化一个新实例?
是否有任何方法来拦截Dapper的类实例化,以便在需要时为其提供现有实例?
谢谢马克!情况是一个很好的问题。只是一个快速的想法,但是如何为可充当实例化回调的Query <>()方法添加一个可选的Func参数?如果没有设置,Dapper会回退到总是新的()。 –
Amberite
2015-04-01 22:10:26
@Amberite好吧,它比这更复杂 - 特别是考虑到多类型方法的存在。让我想想最适合的实现。尤其要注意的是,委托实例不能方便地用于基于IL的元编程;它可以完成,但涉及创建包装实例和支持领域等 – 2015-04-01 22:15:37
如果Func <>接受一个常规的类型参数,那么我不认为多地图方法会是一个问题?每种类型都会调用一次回调函数。但是IL问题肯定是一个大问题。我现在要回答这个问题。我会继续关注Github回购以及如果你想出一些东西,这个线程:) – Amberite 2015-04-01 22:23:15