我有以下型號 - 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