c# – ObjectTrackingEnabled和linq-to-sql
我读了
here,当查询数据进行读取操作时,将ObjectTrackingEnabled设置为false会在某种程度上提高性能.我的查询看起来像这样:
public return type TheQueryName (some parameters) { using (TheDC MyDC = new TheDC()) { var TheQuery = (...).ToList(); return TheQuery; } } 1)如果我想添加性能增强,我只需添加ObjectTrackingEnabled = true行;就在行var之前的TheQuery =(…).ToList(); 2)另外,如果我在查询中将ObjectTrackingEnabled设置为true,我是否需要在返回之前将其设置为false,或者我只是为数据上下文的特定实例设置ObjectTrackingEnabled以及下一次我将实例化一个新的数据上下文ObjectTrackingEnabled的值将恢复为默认状态false? 注意:我只计划添加ObjectTrackingEnabled = false;阅读操作. 谢谢. 解决方法
ObjectTrackingEnabled控制您的数据上下文(在您的情况下为TheDC)是否将在加载后跟踪实体的更改.您是否想要,取决于您的具体情况.
当然,让数据上下文执行的操作更少会使其更快,但代价是加重跟踪更改.为什么变更跟踪很酷?因为你能: >从某些上下文中加载一些实体 禁用更改跟踪后,您必须明确告知上下文更改的内容,新值的内容等. 假设您仍然不希望对象跟踪,则在每个特定数据上下文实例上设置该属性.这意味着您必须: >为您创建的每个数据上下文手动设置 希望这可以帮助! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |