2010年4月27日 星期二

Entity Framework 的 Bug?

開發應用程式時,編譯錯誤,出現了下面的訊息

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'.   

加上參考後,編譯就成功了。

沒有留言:

Share with Facebook