实体框架和脏读
问题描述:
我有实体框架(.NET 4.0)与SQL Server 2008相冲突。数据库(理论上)在营业时间内更新 - 删除,然后插入,全部通过事务。实际上,这不会经常发生。但是,我需要确保始终可以读取数据库中的数据。我正在写的应用程序永远不会对数据执行任何类型的写入 - 只读。实体框架和脏读
如果我做脏读,我总是可以访问数据;发生的最糟糕的是我得到旧数据(这是可以接受的)。但是,我可以告诉实体框架始终使用脏读?如果我以这种方式设置EF,是否需要担心性能或数据完整性问题?或者我应该退后一步,看看重写正在执行删除/插入过程的流程?
答
不要用脏读。 “最糟糕的”并不是你看到旧的数据。最糟糕的是你看到未提交的数据。 Stack Overflow uses snapshots rather than dirty reads来解决这个问题。我也是这么做的。
答
从上一个链接,我发现这一点,这也回答了这个问题。
http://www.hanselman.com/blog/GettingLINQToSQLAndLINQToEntitiesToUseNOLOCK.aspx