Навигация в обоих направлениях в отношениях one2one - PullRequest
0 голосов
/ 11 апреля 2020

Я использую AspNetIdentity и вместе с тем сгенерированную модель для AspNetUser. Я создал свой собственный класс AspNetUser следующим образом:

 public class MieterverwaltungUser : IdentityUser<int>
{
    public override int Id { get; set; }

    [NotMapped]
    public TenantData TenantData { get; set; }
}

Данные TenantData не отображаются, потому что я не хочу, чтобы они отображались в таблице, а использую их только для целей навигации в моем коде. Однако TenantData имеет ссылку на него:

 public class TenantData
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public DateTime DateOfBirth { get; set; }
    public string Nationality { get; set; }
    public Gender Gender { get; set; }
    public Job Job { get; set; }

    public MieterverwaltungUser MieterverwaltungUser { get; set; }
}

Теперь я пытаюсь выбрать пользователя и включить TenantData следующим образом:

var user = await _mieterverwaltungContext.Users.Include(x => x.TenantData).SingleOrDefaultAsync(x => x.NormalizedEmail == email.ToUpper());

Но я получаю ошибку:

System.InvalidOperationException: лямбда-выражение, используемое внутри Include, недопустимо.

Заранее спасибо!

1 Ответ

0 голосов
/ 16 апреля 2020

Исправлено, удалив аннотацию [NotMapped] и добавив

public int MieterverwaltungUserId { get; set; }

в TenantData, чтобы EF C знал, куда поместить внешний ключ. Теперь я могу использовать приведенный выше код без проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...