Расширение ApplicationUser в новом проекте Blazor Server с отдельными учетными записями.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Расширение ApplicationUser в новом проекте Blazor Server с отдельными учетными записями.

Сообщение Anonymous »

Я пытаюсь расширить ApplicationUser настраиваемыми свойствами в новом серверном проекте Blazor. Вот что у меня есть:

Код: Выделить всё

public class Tariff
{
public int Id { get; set; }
public required string Name { get; set; }
public double MonthlyFee { get; set; }
public int NetworkSpeed { get; set; }
}

public class ApplicationUser : IdentityUser
{
// Added field and foreignkey attribute after, but that changed nothing
public int TariffId { get; set; }
[ForeignKey(nameof(TariffId))]

public required Tariff Tariff { get; set; }
public double Balance { get; set; }
}

public class ApplicationDbContext(DbContextOptions options) : IdentityDbContext(options)
{
public DbSet Tariff { get; set; }
}

После применения сгенерированной миграции я получил таблицу Tariff с соответствующими столбцами и столбец TariffId в таблице AspNetUsers.
Я также изменил процесс регистрации следующим образом:

Код: Выделить всё

var user = Activator.CreateInstance();
var defaultTariff = DbContext.Tariff.FirstOrDefault();
user.Tariff = defaultTariff!;
return user;
И таблица тарифов заполняется вручную примерами строк. После этого я пытаюсь получить доступ к полю на странице Blazor.

Код: Выделить всё

@page "/Account/Personal"
@using Microsoft.AspNetCore.Identity
@using WebApp.Components.Account.Shared
@using WebApp.Data

@inject UserManager UserManager
@inject SignInManager SignInManager
@inject IdentityUserAccessor UserAccessor
@inject IdentityRedirectManager RedirectManager
@inject ApplicationDbContext DbContext


@foreach (var tariff in DbContext.Tariff.ToList())
{
@tariff.Name
}


@code {
private ApplicationUser user = default!;

[CascadingParameter]
private HttpContext HttpContext { get; set; } = default!;

protected override async Task OnInitializedAsync()
{
user = await UserAccessor.GetRequiredUserAsync(HttpContext);
}
}
Но отладчик показывает, что поле «Тариф» имеет значение null. Однако другие поля, например, TariffId и Balance, заполняются нормально.
Чего мне не хватает для автоматического заполнения этого свойства?

Подробнее здесь: https://stackoverflow.com/questions/784 ... individual
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Минимальный API с отдельными учетными записями и чтение конфигурации приложения.
    Anonymous » » в форуме C#
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Минимальный API с отдельными учетными записями и прочитайте AppConfig
    Anonymous » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Форма входа в систему с несколькими учетными записями php [закрыто]
    Гость » » в форуме Php
    0 Ответы
    38 Просмотры
    Последнее сообщение Гость
  • Вход в React Native Google с несколькими учетными записями
    Anonymous » » в форуме Android
    0 Ответы
    36 Просмотры
    Последнее сообщение Anonymous
  • Как разделить файлы cookie между двумя учетными записями Windows
    Anonymous » » в форуме C#
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»