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 уже существует для той же цели. Попробуйте использовать его на других ваших объектах.

Другие вопросы по тегам