【发布时间】:2010-10-14 19:09:01
【问题描述】:
我喜欢 ORM 工具,但我经常认为对于大型更新(数千行),在类似的情况下加载、更新和保存似乎效率低下
UPDATE [table] set [column] = [value] WHERE [predicate]
会提供更好的性能。
但是,假设出于性能原因想要走这条路线,那么您将如何确保缓存在内存中的所有对象都得到正确更新。
假设您正在使用 LINQ to SQL,并且您一直在处理 DataContext,您如何确保您的高性能 UPDATE 反映在 DataContext 的对象图中?
这可能是“你没有”或“使用数据库上的触发器来调用删除缓存的 .NET 代码”等,但我很想听听这类问题的常见解决方案。
【问题讨论】:
-
这不是使用 ORM 的原因之一吗?即它提供了同步内存对象和更新的存储对象的机制?该机制当然是 ORM 特定的
-
是的,但我的观点是,如果您使用 ORM 工具,并希望使用直接 SQL 方法提高批量更新的性能,那么您将失去 ORM 的一些好处。
标签: sql database performance orm caching