在 one2one 关系中双向导航

Navigating in both directions in one2one relationship

我正在使用 AspNetIdentity 以及为 AspNetUser 生成的模型。 我已经像这样创建了自己的 AspNetUser class:

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

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

TenantData 未映射,因为我不希望它显示在 table 中并且仅将其用于我的代码中的导航目的。 然而,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; }
}

现在我正在尝试 select 一个用户并像这样包含 TenantData:

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

但我收到一个错误:

System.InvalidOperationException: Lambda expression used inside Include is not valid.

提前致谢!

通过删除 [NotMapped] 注释并添加

修复了它
public int MieterverwaltungUserId { get; set; }

in TenantData,让EFC知道把外键放在哪里。现在我可以毫无问题地使用上面的代码了。