Я следовал процедуре создания библиотеки классов Razor в соответствии с: Идентификацией платформы в проектах ASP.NET Core
Я также расширил свою модель, добавив свойство под названиемOffice365DomainName
:
[Required]
[Display(Name = "Office 365 Domain Name")]
public string Office365DomainName { get; set; }
Это свойство было включено во все нужные места, чтобы обеспечить заполнение базы данных SQL согласно документации .
Теперь, когдановый пользователь пытается зарегистрироваться, я хотел бы проверить базу данных, чтобы убедиться, что значение Office365DomainName
еще не существует.
Вот что я пробовал:
- Внедрение
ApplicationDbContext
в мой файл Register.cshtml.cs
и выполнение var tenantResult = await _context.Tenant.FindAsync(Input.Office365DomainName);
, однако это дает мне исключение, касающееся наличия первичного ключа для запроса.Это имеет смысл ... но я не знаю, каким будет ПК, не посмотрев сначала на данные (улов 22). - Затем я попробовал методы UserManger, такие как
var foo = await _userManager.GetUserAsync(User);
.Однако, поскольку ни один пользователь не вошел в систему, User
не существует.
Я не могу найти встроенный метод из UserManager, который бы соответствовал моим потребностям.Так как же человек сможет запросить сущность, не зная первичного ключа?Я полагаю, что метод CreateAsync
из UserManager выполняет эту проверку, чтобы убедиться, что другие пользователи не существуют;Я просто хочу добавить эту функциональность и проверить наличие добавленного поля.
Вот моя информация для startup.cs:
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection")));
Вот мой ApplicationDbContext.cs
:
public class ApplicationDbContext : IdentityDbContext<UserRegistrationExtension>
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
}
Моя модель, представляющая данные из формы, UserRegistrationExtension
.Моя предыдущая попытка была создать Tenant
объект внутри ApplicationDbContext.cs
типа UserRegistrationExtension
.Полное предположение, но я чувствую, что я не на правильном пути.
В основном я предполагаю, что мне нужно указать где-нибудь мой тип UserRegistrationExtension
, но я не знаю, где его включить ??