0
我已經創建這兩個類(POCO)...導航性能不延遲加載
public class Address
{
public int Id { get; set; }
public string Street { get; set; }
public string Number { get; set; }
public string Neighborhood { get; set; }
public string ZipCode { get; set; }
public int CityId { get; set; }
public virtual City City { get; set; }
}
public class City
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Address> Addresses { get; set; }
}
...然後我映射加載...
public class AddressMap : EntityTypeConfiguration<Address>
{
public AddressMap()
{
ToTable("Address");
HasKey(p => p.Id);
...
...
HasRequired(p => p.City)
.WithMany(p => p.Addresses)
.HasForeignKey(p => p.CityId);
}
}
public class CityMap : EntityTypeConfiguration<City>
{
public CityMap()
{
ToTable("City");
HasKey(p => p.Id);
...
...
HasMany(p => p.Addresses)
.WithRequired(p => p.City)
.HasForeignKey(p => p.CityId);
}
}
然後,我創建一個類兩種方法:
FindCityById
返回一個城市及其各自的地址...Context.Cities.Find(key)
和GetAllAddresses
(只用於測試目的)Context.Addresses.ToList()
當我使用FindCityById
...的相關地址被加載!
當我使用GetAllAddresses
時,CityId
有價值,但City始終爲空。
ProxyCreationEnabled
和LazyLoadingEnabled
是「真」。
爲什麼在我在地址課上的城市沒有加載?
你是什麼意思,它沒有加載,因爲它是延遲加載,它會在您嘗試訪問集合中的地址時加載。 – 2014-11-03 16:09:12
我在這裏找到答案http://stackoverflow.com/questions/22194266/ef6-does-not-lazy-load-navigation-property?rq=1 EF需要一個顯式的構造函數聲明。 – 2014-11-03 20:47:46