你可以使用 Dapper 来刷新现有的对象引用而不是总是返回新的吗?

Posted

技术标签:

【中文标题】你可以使用 Dapper 来刷新现有的对象引用而不是总是返回新的吗?【英文标题】:Can you use Dapper to refresh existing object references rather than always returning new ones? 【发布时间】:2015-09-15 05:50:02 【问题描述】:

TLDR 版本:

是否可以使用 Dapper ORM 手动将已经存在的内存中对象实例更新为数据库中的最新值,而不是总是返回新实例?

加长版:

我们建立了自己的缓存机制来支持我们的对象模型。同时,我们真的很喜欢 Dapper 如何通过使用匿名类型指定参数的简单 SQL 调用创建对象并将对象返回给我们的便利。因此,我们正试图同时利用两者。

我们正在处理的是我们使数据库成为数据的福音,使用触发器等来确保它的完整性。然后我们需要刷新我们现有的内存对象以反映这些新值。我们不在乎这是否是我们必须显式调用的手动过程,但我看不出有任何方法可以拦截 Dapper 'new'ing 对象,而是将对象交给它们进行更新。

那么,Dapper 可以做类似的事情,还是我们必须自己实现?

【问题讨论】:

【参考方案1】:

不,Dapper 没有任何类型的持久性、可观察性或可重用机制。您所能做的就是重新查询并重新分配给您现有的对象。

【讨论】:

是的,我就是这么想的。

以上是关于你可以使用 Dapper 来刷新现有的对象引用而不是总是返回新的吗?的主要内容,如果未能解决你的问题,请参考以下文章

Dapper入门使用,代替你的DbSQLhelper

关于何时使用临时对象来保存对对象的引用,而不是在每次使用时引用整个路径的经验法则? [关闭]

Dapper入门使用,代替你的DbSQLhelper

dapper.net,如何刷新 ConcurrentDictionary?

关联引用的使用方法

关联引用的使用方法