0
使用LINQ2SQL當我得到這個錯誤:兩個LINQ數據環境問題
The query contains references to items defined on a different data context.
下面的代碼:
var instances = (from i in context.List
join j in context.CatsList on i.ListID equals j.ListID
join c in context.Cats on j.CatID equals c.CatID
where c.SID == Current.SID
orderby i.Title
select i).Distinct();
的問題,據我可以確定,就是Current
對象實際上是從執行不同LINQ語句的屬性返回的LINQ2SQL對象。
因此,LINQ2SQL不喜歡在一個LINQ語句包含另一個語句結果的數據庫上執行查詢。
我的那個問題是,(我將在這裏總結一下這個問題)的Current
對象被檢索使用上述相同的上下文中查詢並最終Current.SID
應該簡單地解析爲int
,那麼究竟是什麼編譯器執行它的問題?
簡而言之,爲什麼不可能使用先前查詢的返回對象作爲參數執行LINQ查詢?
是的,這就是我的想法。這是我在撰寫原始問題時的第一次調查。但不,我得到同樣的錯誤。據我所知,查詢中涉及的唯一元素是i,j和c - 全部來自一個上下文。那麼它真的在抱怨什麼? – 2010-08-13 15:12:46
如果換出'=='的'equals',它會起作用嗎? – kbrimington 2010-08-13 15:24:42
不,編譯器錯誤狀態「Expected contextual keyword'等於'」和「名稱'j'不在'equals'左側的範圍內,請考慮交換'equals'兩邊的表達式。 – 2010-08-13 15:26:41