以下是上下文:
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,在序列化之前,我必须关闭Lazyloading。我错过了什么?
答案 0 :(得分:3)
您已关闭此功能以按需加载相关项目,因此是的,它不再按需加载相关内容。您现在需要手动加载。
我认为你不能急于加载Find,所以它会像
db.Estates.Include(e => e.Photos).FirstOrDefault(e => e.Id == EstateId)
只要您想一次性加载其他相关数据,就需要包含(并使用System.Data.Entity来获取包含的精美版本)。