栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

我什么时候应该处理数据上下文

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

我什么时候应该处理数据上下文

实际上并不重要。不久前,我问了LINQ to SQL团队的Matt Warren,这是答复:

我们实现IDisposable的原因有几个:

如果应用程序逻辑需要保留实体,而不是预期使用DataContext或有效时,则可以通过调用Dispose强制执行该合同。该实体中的延迟加载程序仍将引用DataContext,并且如果有任何代码尝试导航延迟属性,则将尝试使用它。这些尝试将失败。Dispose还强制DataContext转储其物化实体的缓存,以便单个缓存的实体不会意外地使通过该DataContext物化的所有实体保持活动状态,否则将导致似乎是内存泄漏的情况。

可以欺骗自动关闭DataContext连接的逻辑,使连接保持打开状态。DataContext依靠应用程序代码枚举查询的所有结果,因为到达结果集的末尾会触发连接关闭。如果应用程序使用IEnumerable的MoveNext方法而不是C#或VB中的foreach语句,则可以过早退出枚举。如果您的应用程序遇到连接无法关闭的问题,并且怀疑自动关闭行为不起作用,则可以使用Dispose模式来解决。

但是基本上,在大多数情况下,您并不需要 真正 丢弃它们-
这是设计使然。我个人比较喜欢这样做反正,因为它更容易遵循“一切处置其实现IDisposable”,而不是记住异常的负载,以它的规则-
但你不可能泄漏的资源,如果你 忘记处置它。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/596946.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号