這裏有一堆我嘗試過的東西......希望你能從中推斷出我想要做什麼以及我在做什麼做錯了。好了,所以用這個DoQuery當我在與加載相關的實體問題:使用ObjectContext.CreateQuery(實體框架和存儲庫)加載相關實體(Eager Load)遇到麻煩
public ObjectQuery<E> DoQuery(ISpecification<E> where)
{
return (ObjectQuery<E>)_ctx.CreateQuery<E>("[" + typeof(E).Name + "]").Where(where.EvalPredicate);
}
如果我只是用這個,我最終得到一個包含不同的是相關實體之外的所有合適的參數對象回來..即,如果其中一個是引用User表的UserID,那麼我也不會返回User對象。
我讀了,你可以做一個.INCLUDE(「用戶」)做實體的貪婪加載...但是當我嘗試這樣它不工作:
public ObjectQuery<E> DoQuery(ISpecification<E> where)
{
return (ObjectQuery<E>)_ctx.CreateQuery<E>("[" + typeof(E).Name + "]").Include("User").Where(where.EvalPredicate);
}
我也檢查以確保實體集名稱和型號名稱是「用戶」,他們是。我唯一能想到的其他事情是在("[" + typeof(E).Name + "]")
中放置多個東西,但我不確定如何在其中包含多個實體...以下是我嘗試過的,因爲我看到有人說你可以通過放置多個實體來加載多個實體。插圖中。
public ObjectQuery<E> DoQuery(ISpecification<E> where)
{
return (ObjectQuery<E>)_ctx.CreateQuery<E>("[" + typeof(E).Name + "].[User]").Where(where.EvalPredicate);
}
但沒有奏效...
如果我不是在正確的軌道上,請讓我知道。有沒有人知道如何使用ObjectContext.CreateQuery加載相關的實體?任何建議或見解都有幫助。在評論中指出克雷格
謝謝
馬特
我仍然沒有得到返回的用戶對象......我在這些行上放置了中斷,並檢查是否在那裏輸入了正確的entitySetNames。 – Matt 2009-10-31 20:15:42
如果在調試可視化工具中展開查詢的「結果視圖」,則具有用戶屬性。當你展開時,你會得到一個用戶數量? – 2009-10-31 20:32:37
不,它只是說 – Matt 2009-10-31 20:59:12