просто любопытно. У меня есть пользовательский класс хранилища идентификаторов asp. net, который наследует класс IdentityUser. Это определяется следующим образом:
public class ApplicationUser : IdentityUser
{
public ApplicationUser()
{
}
}
Обратите внимание, что я не вызываю базовый конструктор явно.
Я знаю, что даже когда я не вызываю базовый конструктор явно, он вызывается неявно.
Я продемонстрировал это при отладке. Когда я просто вхожу в конструктор ApplicationUser, Id
член базового класса уже содержит значение, равное некоторой строке GUID.
Это происходит из конструктора базового класса, который я видел с помощью отражения:
public IdentityUser()
{
this.Id = Guid.NewGuid().ToString();
}
Есть ли какое-то решение?
В моем пользовательском хранилище пользователей идентификатор является целочисленным первичным ключом, но я задаю его значением из базы данных на более позднем этапе, поэтому не имеет значения, является ли этот GUID назначен этому члену по умолчанию, но мне интересно, можно ли этого избежать. Может быть, наследуя от других классов и реализуя другой интерфейс: IdentityUser<string, IdentityUserLogin, IdentityUserRole, IdentityUserClaim>, IUser, IUser<string>
заменив string
на int
.
Есть какие-либо комментарии по этому поводу?
С уважением
Jaime