【问题标题】:Navigating in both directions in one2one relationship在 one2one 关系中双向导航
【发布时间】:2020-04-11 10:08:48
【问题描述】:

我正在使用 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:内部使用的 Lambda 表达式 包含无效。

提前致谢!

【问题讨论】:

    标签: c# entity-framework-core entity-framework-core-3.1


    【解决方案1】:

    通过删除 [NotMapped] 注释并添加来修复它

    public int MieterverwaltungUserId { get; set; }
    

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

    【讨论】:

      猜你喜欢
      • 2013-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-05
      • 2014-07-23
      • 2012-08-26
      • 1970-01-01
      相关资源
      最近更新 更多