C# 为什么快照隔离级别大于可序列化级别?

C# 为什么快照隔离级别大于可序列化级别?,c#,.net,sql-server,isolation-level,C#,.net,Sql Server,Isolation Level,以下是反编译器显示的内容: public enum IsolationLevel { Unspecified = -1, Chaos = 16, ReadUncommitted = 256, ReadCommitted = 4096, RepeatableRead = 65536, Serializable = 1048576, Snapshot = 16777216, } 但是,Serializable锁定数据,从而比Snapshot提供更多并发正确性保证。那么快

以下是反编译器显示的内容:

public enum IsolationLevel
{
  Unspecified = -1,
  Chaos = 16,
  ReadUncommitted = 256,
  ReadCommitted = 4096,
  RepeatableRead = 65536,
  Serializable = 1048576,
  Snapshot = 16777216,
}

但是,
Serializable
锁定数据,从而比
Snapshot
提供更多并发正确性保证。那么快照值更大的原因是什么呢?

数值更大与“隔离级别”没有特别关系。每一项仅仅代表一种不同类型的隔离。关于这意味着什么,您必须参考文档。这些实际上只是4位间隔的位标志。除了内部实现细节之外,所使用的值没有特别的含义。

Hummm,我设计了环境调用cantext,我需要确保嵌套调用要求的隔离不大于父上下文的隔离。所以我想我可以通过数值来比较水平。看来我做不到。@voronip确实;您必须编写自己的方法来比较Isolations,可能是因为它是在后来实现的。是的,它是在后来出现的,但有一个地方可以放置快照。也许这是一个突破性的改变。。。