0
今天我試圖修改現有的泛型GetAll方法以使用eager includes。 我已啓用延遲加載,但我想爲某些特定的緩存優化進行急切加載。ObjectQuery上的泛型包含實際上並不包含任何內容
public IQueryable<T> GetAll<T>(List<string> eagerIncludeList) where T : EntityObject, new()
{
var entitySet = String.Format("[{0}]", FetchEntitySetName<T>());
ObjectQuery<T> q = this.db.CreateQuery<T>(entitySet);
foreach (string x in eagerIncludeList) {
q.Include(x);
}
return q;
}
上面的代碼不起作用(至少不是急於加載),用它來調用它。
DB.GetAll<PageConfig>(new List<string>() {"Containers"})
不加載相關的集裝箱爲我PageConfigs, 但 當硬編碼的包括,它的工作,所以我敢肯定,命名爲「集裝箱」是正確的
var example = db.PageConfigSet.Include("Containers").ToList();
這給了example.First()。Containers.IsLoaded = true;
關於爲什麼使用CreateQuery的泛型代碼不起作用,但使用硬編碼ObjectSet的泛型代碼的任何想法?
射擊我!我一直在看這個1小時!所以Include實際上不會修改輸入...好吧! –