【问题标题】:What does the entity framework do with locking sql server实体框架加锁sql server有什么作用
【发布时间】:2010-07-31 00:20:45
【问题描述】:

我不是真正的数据库专家,想知道你能不能告诉我在以下情况下Sql server 结合实体框架使用什么样的锁:

我从一个表中读取 40 条记录,在代码中更新它们并将 SaveChanges 调用到上下文

我从表中读取 1 条记录,在代码中更新它并调用 SaveChanges 到上下文

我在代码中创建了 1 个新记录(对象)并将 SaveChanges 调用到上下文

我在代码中创建了 40 条新记录(对象)并将 SaveChanges 调用到上下文中

我还想知道,是否可以通过某种方式查看 Sql Server 使用(设置?)了哪些锁?

米歇尔

【问题讨论】:

  • 我认为更好的问题是问你如何自己分析这个......
  • 嗯,同意,听起来很懒,但如果有人已经知道的话......

标签: sql-server-2005 entity-framework


【解决方案1】:

锁定取决于您如何配置 SQL Server,而不是取决于 EF。 You monitor locking using the dynamic management views.

【讨论】:

  • 哦,好的。我认为 EF 可能会向 Sql Server 传递一些锁定提示或需求。
【解决方案2】:

我认为这很难回答,因为这完全取决于您如何编写代码。在您使用任何数据之前,实体框架不会执行实际的 SELECT 语句。 例如: Dim v = (From a in Something Select a) 对于 v 中的每个 b 下一个

在此代码块中,实际的“SELECT * FROM Something”在到达“For Each”行之前并未在 SQL Server 上执行。 我能给你的最好答案是通过查看返回所有锁的 sys.dm_tran_locks 自己测试它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多