我有以下型号 - Person
和Address
。EF导航属性不加载
- 甲
Person
未经Address
- 甲
Address
总是属于Person
类可以存在:
public class Person {
// properties
[ForeignKey("Address")]
public int? AddressId { get; set; }
public virtual Address Address { get; set; }
}
public class Address {
// properties
[ForeignKey("Person")]
public int PersonId { get; set; }
public virtual Person Person { get; set; }
}
PersonConfiguration:
HasOptional(a => a.Address)
.WithMany()
.HasForeignKey(u => u.AddressId);
AddressConfiguration:
HasRequired(a => a.Person)
.WithMany()
.HasForeignKey(u => u.PersonId);
问题
SSMS示出了所有FKS和约束是按预期方式。然而,当我做到以下几点:
var dbPerson = db.Persons.Include(s => s.Address).ToList();
返回Person
对象(那些有地址)都没有填充Address
或AddressId
。一切都是空的。
当我对db.Address
执行相同的操作时,我得到的所有属性都按预期方式填充 - 有效的关系触发。是什么导致我的1:1可选关系的主体结束不拉入相关实体?
我应该注意,我确实需要FK ID在上面定义的上定义的两个实体上。
使用流利或注释。代码看起来没问题。应该管用。 – vijayst