這陣子做項目,重新拾起Silverlight。正好前一陣子裝系統,果斷就把VS2012裝了上去,不想這回就遇到了問題。
我創建的項目是Silverlight Business Application,Silverlight版本5,自帶WCF RIA。既然用的也是沒啥新意的SQL Server,那就順帶用上Entity Framework做ORM吧。
以上這些都沒啥難度。我先創建的數據庫表,然後創建ADO.Net 實體模型。下一步自然是添加新的域服務(Domain Service),然後關聯到剛纔創建的實體模型。
不幸在這兒卡主了:
可用的上下文類一個都木有,並且有提示說“有些Entity Framework上下文類可能已被排除”!
當然啦,這種問題難不倒我,谷歌了半天,終於有結果了。
原因
在VS2012中,Entity Framework缺省地基於DbContext創建上下文類(這個詞好彆扭),然而WCF RIA不支持它。
解決方法
這個我就直接翻譯下哈:
爲了解決這個問題,你必須把它轉成一個基於ObjectContext的模型。按下面的步驟做就行了:
1、在設計器中打開你的實體模型(如有必要,點一下設計器中空白的地方,保證沒有對象處於選中狀態)。
2、在屬性窗口中,更改代碼生成策略,從無改到默認。
3、刪除那兩個.tt文件。這裏假設從創建實體模型以來,你沒有修改這些文件。如果你有修改過,那麼這些修改將會丟失。
4、重新生成項目。
現在,問題解決了。