[主細表 / 主表明細]用ADO.NET Entity Framework作一個主細表(Master-Detail)範例

摘要:[習題]用ADO.NET Entity作一個主細表(Master-Detail)






VS 2010 與 .NET 4.0多了好多新花樣,有 MVC / Silverlight 3 / ADO.NET Entity / ADO.NET Data Service........

其實很多東西都在 .NET 3.5 SP1出來的時候,就已經加入了。
有興趣的話,現在就能開始自修,玩玩看。
 
 
  根據微軟官方網站的說法,ADO.NET Entity Framework

ADO.NET 實體架構 的設計目標是要讓開發人員針對概念應用程式模型進行程式設計來建立資料存取應用程式,而不用直接對關聯式儲存結構描述進行程式設計。其目的是要減少資料導向應用程式所需的程式碼數量與維護。

Entity Framework 應用程式提供了以下的優勢:

  • 應用程式可以在更以應用程式為中心的概念模型運作,包括具有繼承、複雜成員和關聯性的型別。

  • 應用程式不在受限於特定資料引擎或儲存結構描述上硬式編碼的相依性。

  • 可以在不變更應用程式程式碼的情況下變更概念模型與儲存體專用結構描述之間的對應。

  • 開發人員可以使用可對應到不同儲存結構描述 (甚至是在不同的資料庫管理系統中所實作) 一致的應用程式物件模型。

  • 多個概念模型可以對應到單一儲存結構描述。

  • Language-Integrated Query (LINQ) 可為針對概念模型的查詢提供編譯時期語法驗證。

 

官方網站也有很多入門範例,請看這個快速入門的範例,很實用喔~ http://msdn.microsoft.com/zh-tw/library/bb399182.aspx

 

 

建議您先上網了解一下 ADO.NET Entity的觀念,

因為底下的範例與操作其實不是重點。

重點是「新技術的觀念」、「新技術可望解決哪些舊困擾?」

 

=====================================================================================

以下的範例,是為了服務購買本書的讀者,所以採用的資料表、範例,都跟書上的雷同。

請參閱本書的第 14-1-8節,留言板的範例。

分別使用兩個 Table,互有關連。

 

本範例已經集結出書,請看本書「下集」

ASP.NET專題實務( II ):範例集 與 4.0新功能

 

 

 

下圖是執行結果,說穿了,作法跟我們書裡面使用 SqlDataSource(請看第九章的範例),操作方法大致雷同~

相信本書讀者應該很快能上手,所以下列的操作方法,我只提重點(步驟不會一一列出,請見諒)

書本裡面第九章相同的範例,用不同的方法來作,

各位可以自行評估兩種方法的差異,與適不適合自己當前的狀況?

=====================================================================================

 

 A.  先設定資料與關聯

1.  首先,在SQL 2005 / 2008裡面,先幫這兩個關聯資料表,做好一份「資料庫圖表」

 

2. 接下來,進入VS 2008,您必須安裝 .NET 3.5 SP1予以升級之後,才會有這些新功能。

我們開啟一個新網站。

按下滑鼠右鍵 ==> 新增項目  ==> 選擇 ADO.NET Entity.....(正體中文的翻譯是「ADO.NET實體資料模型」)

 特別注意,ADO.NET Entity 這個檔案的副檔名,名為 .edmx

微軟的官方說法是 -- 根據資料庫中資料表的 1:1 對應(Mapping),使用 Visual Studio 工具來產生 實體資料模型 (EDM) 的對應檔。

 

3. 經過一個精靈步驟,一一完成後,就會出現下列畫面。

這個精靈的步驟,跟 SalDataSource類似,在此不贅述。相信讀者應該很熟悉了~

 

 =====================================================================================

 B.  程式的部份

 

我們會在畫面上,設定兩個控制項:

當使用者在 DropDownList點選「文章的標題」

底下的 GridView,就會出現這篇文章的「讀者留言」。

      程式執行結果

         

 

 

底下開始畫面設計與操作 --------------------------------------------------------

     

 

      我們用一個 EntityDataSource來搭配 DropDownList............... 

     

 

 完成 DropDownList1 + EntityDataSource1 之後

我們來作第二個部份, GridView + EntityDataSource2

      

 

重點如下:

      當使用者在 DropDownList點選「文章的標題」,就會傳送文章的 id編號(如:id=51)

      依照這個文章id編號(=51),我們就可以去 test_talk Table找出這篇文章的「讀者留言」。

      呈現在 GridView上面。

 

 

這裡我們要動手修改一下  EntityDataSource2    Where的條件

     

 

作法跟書上的差不多,

最大的差別,就是欄位名稱之前,要加上 it. 這幾個字,才能正常運作!

     

 

 各位可以參閱微軟官方的msdn文件(中文的~),瞭解這些東西:

EntityDataSource . Where 屬性   http://msdn.microsoft.com/zh-tw/library/system.web.ui.webcontrols.entitydatasource.where.aspx

這是MSDN文件上的範例,請注意底下的 Where = " "裡面的內容

01 <asp:EntityDataSource ID="SalesOrderHeader" runat="server"  
02   ConnectionString="name=AdventureWorksEntities"  
03   DefaultContainerName="AdventureWorksEntities" EnableDelete="True"  
04   EnableInsert="True" EnableUpdate="True" EntitySetName="SalesOrderHeader"  
05   EntityTypeFilter="" OrderBy="it.TotalDue DESC" Select=""  
06    Where="it.OnlineOrderFlag = TRUE AND it.TotalDue > @ordercost">
07  
08   <WhereParameters>
09     <asp:ControlParameter ControlID="costLimit" DbType="Int32"  
10       DefaultValue="2500" Name="ordercost" PropertyName="Text" />
11   </WhereParameters>
12 </asp:EntityDataSource>

 

 另外一篇好文章,也來自 MSDN中文的文件。

          如需示範如何使用 WHERE 子句篩選查詢的範例,請參閱 HOW TO:篩選資料 (Entity Framework)。

          請看 --      http://msdn.microsoft.com/zh-tw/library/cc716755.aspx

 

 

 ......................................................................................................................................

 

 本範例完整下載點 ---- ADO_net_Entity_WebSite2.rar

 今晚颱風夜,請大家注意自身與家戶安全

 

 

 

颱風夜的今日正妹 -- 長澤雅美

http://entertainment.big5.dbw.cn/system/2009/04/15/051862346.shtmlhttp://entertainment.big5.dbw.cn/system/2008/05/26/051285811.shtml

     

 

我將思想傳授他人, 他人之所得,亦無損於我之所有;

猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson

線上課程教學,遠距教學 (Web Form 約51hr)  https://dotblogs.com.tw/mis2000lab/2016/02/01/aspnet_online_learning_distance_education_VS2015

線上課程教學,遠距教學 (ASP.NET MVC 約75~88hr)  https://dotblogs.com.tw/mis2000lab/2018/08/14/ASPnet_MVC_Online_Learning_MIS2000Lab

ASP.NET MVC線上課程 第一天 免費看 (5.5小時) 

寫信給我,不要私訊 --  mis2000lab (at) yahoo.com.台灣  或  school (at) mis2000lab.net


ASP.NET遠距教學、線上課程(Web Form + MVC)。 第一天課程, "完整" 試聽。 

................   facebook社團   https://www.facebook.com/mis2000lab   ......................

................  YouTube (ASP.NET) 線上教學影片  https://www.youtube.com/channel/UC6IPPf6tvsNG8zX3u1LddvA/

 

Blog文章 "附的範例" 無法下載,請看 這裡 ...... https://dotblogs.com.tw/mis2000lab/2016/03/14/2008_2015_mis2000lab_sample_download

請看我們的「售後服務」範圍(嚴格認定)

...................................................................................................................................................... 

[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!MIS2000Lab.主講

事先錄製好的影片,並非上課時側錄!   觀看影片時,有如我「一對一」跟您面對面講課

 

ASP.NET MVC 5 線上教學

         累積時數約 75~ 88小時...... 第一天(5.5小時)完整內容,"免費"讓您評估