close

在前一篇Dynamic Data的文章中,是用LINQ to SQL示範,在專案中如果加入ADO.NET實體資料庫模型,程式是會出錯的,原因為在於所選擇的專案類型不對。在Dyanamic Data專案中,有一個叫做「Dynamic Data實體Web應用程式」,選擇此類型,就可以使用ADO.NET實體資料庫模型,下面是相關的示範。

一開始,先建好兩個資料表,分別叫做Employee以及Department。

2008-08-23_185902 2008-08-23_185924

之後,再對兩個資料表建立關聯(Employee參照Department的DepartmentID欄位)。

2008-08-23_192007

之後新增一個專案,選擇「Dynamic Data實體Web應用程式」。

2008-08-23_190028

然後加入一個ADO.NET實體資料模型。

2008-08-23_190403

然後選擇Employee以及Department這兩個資料表。

2008-08-23_190439 2008-08-23_190606

照慣例,先修改Global.asax.cs。

2008-08-23_190548

然後執行一次看看,沒有問題!

2008-08-23_190655

點選Department,在這邊已經有事先事先建好的兩筆資料,分別是IT部門以及會計部門。

2008-08-23_190840

接下來新增一筆Employee的資料,發現Department欄位可以直接用選的,真是太酷了!

2008-08-23_190821

接下來,在前一篇文章中有提到,將ScaffoldAllTables屬性設為false後,就可以設定想要顯示在網頁上的資料表。但與LINQ類別不同的是,資料庫實體模型並沒有對每一個資料表產生獨立的程式碼檔案,假如直接修改Designer產生的程式碼,會造成錯誤。我並不清楚正統的解法是什麼,但自己有想到其它的解法,那就是利用partial class的特性。

先新增一個程式碼檔案,並且把專案的namespace加進去,這邊示範讓網頁只顯示Employee資料表,所以加入一個Employee類別。

2008-08-23_194515

然後加上[ScaffoldTable(true)]。

2008-08-23_194600

最後別忘了將ScaffoldAllTables設為false

2008-08-23_194643

執行程式,結果如下。

2008-08-23_194749

arrow
arrow
    全站熱搜

    卑微研究生 發表在 痞客邦 留言(0) 人氣()