在前一篇Dynamic Data的文章中,是用LINQ to SQL示範,在專案中如果加入ADO.NET實體資料庫模型,程式是會出錯的,原因為在於所選擇的專案類型不對。在Dyanamic Data專案中,有一個叫做「Dynamic Data實體Web應用程式」,選擇此類型,就可以使用ADO.NET實體資料庫模型,下面是相關的示範。
一開始,先建好兩個資料表,分別叫做Employee以及Department。
之後,再對兩個資料表建立關聯(Employee參照Department的DepartmentID欄位)。
之後新增一個專案,選擇「Dynamic Data實體Web應用程式」。
然後加入一個ADO.NET實體資料模型。
然後選擇Employee以及Department這兩個資料表。
照慣例,先修改Global.asax.cs。
然後執行一次看看,沒有問題!
點選Department,在這邊已經有事先事先建好的兩筆資料,分別是IT部門以及會計部門。
接下來新增一筆Employee的資料,發現Department欄位可以直接用選的,真是太酷了!
接下來,在前一篇文章中有提到,將ScaffoldAllTables屬性設為false後,就可以設定想要顯示在網頁上的資料表。但與LINQ類別不同的是,資料庫實體模型並沒有對每一個資料表產生獨立的程式碼檔案,假如直接修改Designer產生的程式碼,會造成錯誤。我並不清楚正統的解法是什麼,但自己有想到其它的解法,那就是利用partial class的特性。
先新增一個程式碼檔案,並且把專案的namespace加進去,這邊示範讓網頁只顯示Employee資料表,所以加入一個Employee類別。
然後加上[ScaffoldTable(true)]。
最後別忘了將ScaffoldAllTables設為false
執行程式,結果如下。
留言列表