在 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知道把外键放在哪里。现在我可以毫无问题地使用上面的代码了。
我正在使用 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知道把外键放在哪里。现在我可以毫无问题地使用上面的代码了。