gpt4 book ai didi

c# - 为 Dapper 提供一个要映射到的类实例,而不是总是实例化一个新实例?

转载 作者:太空宇宙 更新时间:2023-11-03 13:09:52 24 4
gpt4 key购买 nike

我查看了源代码,但没有找到任何东西(虽然我不擅长 IL),但我想看看是否有办法为 Dapper 提供一个类实例,而不是总是实例化一个新的一个。这样做的原因是我们有时可能会对两个不同的存储过程进行两次单独的调用——一个返回“实体”的一些列,另一个返回其他列。但是,我们没有使用我们在第一次调用中收到的实体进行第二次查询,而是获得了本质上相同实体的两个实例。 Dapper 使用现有实体类并将查询结果映射到该现有类会更可取。

有没有办法拦截Dapper的类实例化,以便在需要时为其提供现有实例?

最佳答案

好问题。目前,它允许您指定一个特定的构造函数,但它始终是 news:

 il.Emit(OpCodes.Newobj, specializedConstructor);

我们可以做的是使指定构造函数或static 工厂方法成为可能;我怀疑这只是对核心实体化器代码以及其他几个地方的三行更改。并非不可能,但随后会遇到诸如 calling-context 之类的问题:dapper 如何向工厂提供调用者指定的上下文。再次重申:一切皆有可能(protobuf-net 做的事情几乎相同)。

但今天这些都不存在了。这并非不可能。

关于c# - 为 Dapper 提供一个要映射到的类实例,而不是总是实例化一个新实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29401128/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com