SecurityStamp vs RowVersion
Я использую модель, которая наследует IdentityUser.
public class User : IdentityUser
{
[TimeStamp]
public byte[] RowVersion {get;set;}
}
Мой вопрос: SecurityStamp в таблице AspNetUsers - это то же самое, что и добавленный RowVersion. Я не могу добавить это свойство, потому что оно показывает мне проблему с проверкой параллелизма в подтипах.
1 ответ
SecurityStamp
в таблице AspNetUsers
не совсем то же самое с RowVersion
хотя цель одна и та же, чтобы справиться с параллелизмом.
Вы можете обратиться к этому ответу.
Печать безопасности может быть чем угодно. Это часто ошибочно быть меткой времени, но это не так. Он будет переопределен ASP.NET Identity, если что-то изменится в пользовательской сущности. Если вы работаете непосредственно с контекстом, лучше всего создать новый Guid и использовать его в качестве штампа.
В любом случае, [Timestamp]
Атрибут не работает для наследования классов. Вместо этого он должен быть добавлен в базовый класс. Но для вашего случая это невозможно, так как вы не можете добавить это непосредственно на IdentityUser
,
Нет смысла добавлять это на ваш User
класс, потому что SecurityStamp
уже существует для той же цели. Попробуйте использовать его на других ваших объектах.