【问题标题】:Configure IIS web config for my webapi app to use snapshop isolation为我的 Web api 应用程序配置 IIS Web 配置以使用快照隔离
【发布时间】:2015-09-23 09:36:39
【问题描述】:

由于我们系统的性能问题(死锁、数据库写入过程中数据库读取被锁定等),我们想尝试 snapshop 隔离。我已阅读有关快照隔离级别的信息,here。我们使用实体框架

我已在数据库上设置了 Snapshop 隔离,并希望配置我们的 Web api 应用程序以使用此隔离进行读取和写入。我怎样才能做到这一点?我读过这可以在 web.config 中完成,但找不到如何..

【问题讨论】:

  • 您是如何直接与 DB:ADO.NET 或通过一些 ORM 交谈的? (在后一种情况下:哪一个?)

标签: sql-server entity-framework iis snapshot-isolation


【解决方案1】:

根据Entity Framework documentation,需要使用事务来设置隔离级别:

using (var tx = myContext.Database.BeginTransaction(IsolationLevel.Snapshot)) {

   // Perform operations on the context...

   await myContext.SaveAsync();
   tx.Commit();
}

有关默认设置的详细信息,另请参阅 this answer:基本上 EF 通过 IsolationLevel.Unspecified 使用数据库具有的任何内容作为其默认事务隔离级别。

【讨论】:

  • 好的,如果我在数据库上设置了 snapshop 隔离级别,那么 EF 将使用什么?如果是这样,在 .net 中使用 TransactionScope-class 时也适用
  • @JohanLarsson 查看第一部分的链接答案。您需要第二次 RTFM(但我猜是的)。
猜你喜欢
  • 2020-09-20
  • 1970-01-01
  • 2021-10-24
  • 1970-01-01
  • 1970-01-01
  • 2010-12-29
  • 2015-05-22
  • 2020-04-01
相关资源
最近更新 更多