開發應用程式時,編譯錯誤,出現了下面的訊息
Cannot implicitly convert type 'System.Data.Objects.ObjectSet<MyEntity>' to 'System.Linq.IQueryable<MyEntity>'
查了一下 msdn ObjectSet 的說明,的確有繼承 IQueryable<T> 啊?怎麼會無法 convert呢?一時間彷彿之前所學盡錯,不知所以為何如此。
再回到 Visual Studio 2010, 發現錯誤更多了,這次有三個錯誤?我還沒有改程式啊!
原來,Visual Studio 2010 為了效能,編譯時如果發現錯誤,會立即回報,但不會管前因後果。查一下這三個錯誤,發現沒有參考 System.Data.Entity 才是主因。
Error 1 The type 'System.Data.Objects.ObjectContext' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
加上參考後,編譯就成功了。
沒有留言:
張貼留言