我是实体框架的新手。可以解释为什么我们在实体框架中使用Concurrency Check属性和example.In场景我们使用这个属性。
提前致谢..
答案 0 :(得分:14)
当多个用户同时更新实体时,这是一种处理数据库更改冲突的方法。添加ConcurrencyCheck
属性意味着您正在讲述
实体框架使用该属性来检测并发冲突。实体框架包括数据库UPDATE
或DELETE
中的属性。
对于包含许多列的数据库表,这可能意味着非常大的WHERE
子句,这可能会影响性能并要求您管理大量状态。对于较大的数据库,首选行版本策略。
[Table("Accounts"]
public class Account
{
public Account() {}
[Key]
public int AccountID { get; set; }
[ConcurrencyCheck]
public string AccountName { get; set; }
}
SQL Server将在AccountName
或UPDATE
中包含DELETE
到数据库中:
exec sp_executesql N'UPDATE [dbo].[Accounts]
SET [AccountName] = @0
WHERE (([AccountId] = @1) AND ([AccountName] = @2))
',N'@0 nvarchar(max) ,@1 int,@2 nvarchar(max) ',@0=N'Dick',@1=1,@2=N'Harry'
go
由于并发检查,这不会向用户返回任何(零)行。