实体框架:为什么我的实体集合 属性 为空且 LazyLoadingEnabled = false?
Entity Framwork: Why is my entity's collection property empty with LazyLoadingEnabled = false?
上下文如下:
public partial class Estate
{
public Estate()
{
}
public int Id { get; set; }
public virtual ICollection<Photo> Photos { get; set; }
}
public Estate GetEstate(int EstateId)
{
using (var db = new Entities())
{
db.Configuration.LazyLoadingEnabled = false;
return db.Estates.Find(EstateId);
}
}
当我调用 GetEstate(estateId) 时,照片集总是空的。谁能帮忙。非常感谢。
根据此文档:msdn.microsoft.com/en-us/library/jj574232(v=vs.113).aspx,在序列化之前,我必须关闭延迟加载。我错过了什么?
您关闭了按需加载相关项目的功能,所以是的,它不再按需加载相关项目。您现在需要通过预加载手动执行此操作。
我认为您不能使用 Find 进行预加载,所以它会像
db.Estates.Include(e => e.Photos).FirstOrDefault(e => e.Id == EstateId)
每当您想一次性加载其他相关数据时,您将需要 Include(并使用 System.Data.Entity 获得 Include 的好版本)。
上下文如下:
public partial class Estate
{
public Estate()
{
}
public int Id { get; set; }
public virtual ICollection<Photo> Photos { get; set; }
}
public Estate GetEstate(int EstateId)
{
using (var db = new Entities())
{
db.Configuration.LazyLoadingEnabled = false;
return db.Estates.Find(EstateId);
}
}
当我调用 GetEstate(estateId) 时,照片集总是空的。谁能帮忙。非常感谢。
根据此文档:msdn.microsoft.com/en-us/library/jj574232(v=vs.113).aspx,在序列化之前,我必须关闭延迟加载。我错过了什么?
您关闭了按需加载相关项目的功能,所以是的,它不再按需加载相关项目。您现在需要通过预加载手动执行此操作。
我认为您不能使用 Find 进行预加载,所以它会像
db.Estates.Include(e => e.Photos).FirstOrDefault(e => e.Id == EstateId)
每当您想一次性加载其他相关数据时,您将需要 Include(并使用 System.Data.Entity 获得 Include 的好版本)。