Tool:Visual Studio 2013 Ultimate
OS:Windows Server 2012
.NET Framework : 4.5.1
此篇文章探討的問題,有一新解法,請參考這篇文章 http://vmiv.blogspot.tw/2014/02/entitydatasource-resurrected.html
在VS2013 Web Forms Web Site使用EntityDataSource發生一些錯誤。重現錯誤:
- New - ASP.NET WebForms Web Site
- Add Edmx
- from db
- 選db
- 選EF6
- 選table
- Add ASPX
- 加一個GridView,新增Data Source
- 選 Entity
- 下一個畫面就GG了….
找尋許久,最後,根據這篇討論串 https://entityframework.codeplex.com/discussions/434936
結論就是EF6不支援 EntityDatasource了,Orz,要改用Entity Framework 5版本才行。舊專案沒事不要亂升級版本啊!!
- 重複上面的步驟,但選Entity Framework 5版:
- 在相同的地方,一樣GG….. Orz * 2,
試了半天,有個愚笨的解法:
- 預設使用T4產生Entity Framework相關類別,先改回Legacy ObjectContext,刪到所有TT檔:
- 設定Code Generation Strategy為Legacy ObjectContext
- 重Build
- GridView->Choose Data Source->Entity
- 這回就沒顯示錯誤訊息了
- 工具產生的tag如下
<asp:GridView ID="GridView1" runat="server" DataSourceID="EntityDataSource1"></asp:GridView>
<asp:EntityDataSource runat="server" ID="EntityDataSource1" DefaultContainerName="pubsEntities" ConnectionString="name=pubsEntities" EnableFlattening="False" EntitySetName="stores"></asp:EntityDataSource>
- RUN ASPX也沒問題
- 若想要改回用T4範本,在此時可以選 Add Code Generation Item
- 加入T4 範本
- 可正常執行
- 不過,設計工具就又失效了,後續想修改就自己敲Tag吧 Orz…誰記得這些tag要怎麼敲啊?
沒有留言:
張貼留言