【问题标题】:Keeping a "reference" to a row object for a long time长时间保持对行对象的“引用”
【发布时间】:2008-10-29 11:58:07
【问题描述】:
在我的应用程序中,我保留从数据库中获取的 LINQ 对象,并定期修改它,然后是 db.SubmitChanges()。
我读到你不应该长时间围绕DataContext 对象。
但是如果我在修改之间关闭我的DataContext,我猜数据对象会失去它与实际数据库行的链接。
保持 DataContext 打开的最佳选择是什么?每次我想更新它时,我真的必须重新加载它吗?
【问题讨论】:
标签:
.net
linq
linq-to-sql
.net-3.5
【解决方案1】:
否则,您可以对数据库执行直接 SQL 查询,以尽可能快地进行更新。
由于并发问题,由于过度比较,默认 Linq UPDATE 语句不是最佳的。查看 SQL 分析器或使用 Linq SQL 可视化器。
//安迪
【解决方案2】:
在您想要更新该行时重新加载该行应该不会对性能造成太大影响,并且它将保证您正在更新该行的最新版本(以防其他用户/进程在您首次打开后对其进行了修改)它)。
如果您不知道其他任何东西会更新该行,那么您可以保留 DataContext 而不会出现太大问题(除非失去与数据库的连接)。