Sql server 2005 实体框架如何锁定sql server

Sql server 2005 实体框架如何锁定sql server,sql-server-2005,entity-framework,Sql Server 2005,Entity Framework,我不是一个真正的数据库专家,我想知道您是否可以告诉我Sql server在以下情况下与实体框架结合使用的是什么类型的锁: 我从一个表中读取40条记录,用代码更新它们,并调用SaveChanges来保存上下文 我从一个表中读取一条记录,用代码对其进行更新,并调用SaveChanges对上下文进行更改 我在代码中创建了1条新记录(对象),并调用SaveChanges来保存上下文 我在代码中创建了40条新记录(对象),并调用SaveChanges来保存上下文 我还想知道,是否有可能看到Sql Serv

我不是一个真正的数据库专家,我想知道您是否可以告诉我Sql server在以下情况下与实体框架结合使用的是什么类型的锁:

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

我从一个表中读取一条记录,用代码对其进行更新,并调用SaveChanges对上下文进行更改

我在代码中创建了1条新记录(对象),并调用SaveChanges来保存上下文

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

我还想知道,是否有可能看到Sql Server使用(设置)了哪些锁


Michel

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

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

锁定取决于SQL Server的配置方式,而不是EF

我认为更好的问题是问你如何自己描述这个……嗯,同意,听起来很懒,但如果有人已经知道了……哦,好吧。我认为EF可能会向Sql Server传递一些锁定提示或要求。