SecurityStamp vs RowVersion

时间:2017-09-20 23:06:52

标签: c# asp.net-mvc entity-framework concurrency

我使用继承IdentityUser的模型。

public class User : IdentityUser
{
[TimeStamp]
public byte[] RowVersion {get;set;}
}

我的问题是:表AspNetUsers中的SecurityStamp与添加的RowVersion相同。我无法添加此属性,因为它显示了子类型中的并发检查问题。

1 个答案:

答案 0 :(得分:0)

SecurityStamp中的

AspNetUsersRowVersion不完全相同,尽管目的是相同的,以处理并发。

您可以参考this answer

  

安全标记可以是您想要的任何内容。它经常被误认为是时间戳,但事实并非如此。如果用户实体上发生了某些变化,它将被ASP.NET标识覆盖。如果您直接处理上下文,最好的方法是生成新的Guid并将其用作图章。

无论如何,[Timestamp]属性不适用于继承类。它应该添加在基类上。但是对于您的情况,由于您无法直接在IdentityUser上添加此内容,因此无法实现。

User课程中添加此内容是没有意义的,因为SecurityStamp已存在用于同一目的。请尝试在其他实体上使用它。