轉ADO.NET Entity Framework 入門示例嚮導(附Demo程序下載) ADO.NET Entity Framework 入門示例嚮導(附Demo程序下載)

ADO.NET Entity Framework 入門示例嚮導(附Demo程序下載)

ADO.NET Entity Framework 入門示例嚮導(附Demo程序下載)
 
 
ADO.NET Entity Framework 是.Net Framework 3.5 SP1 引入的實體框架,它使開發人員可以通過對象模型(而不是邏輯/關係數據模型)專注於數據。實體框架Entity Framework使用概念層、映射層和邏輯層將邏輯數據庫結構抽象化。本文http://forum.entlib.com 開源論壇小組提供。
 
實體數據模型(Entity Data Model
實 體框架的核心位於其模型中。實體框架支持表示數據庫中的關係架構的邏輯存儲模型。關係數據庫通常存儲數據的方式與應用程序使用數據的方式不同。通常,這會 迫使開發人員按照數據庫包含數據的結構檢索數據。因此,開發人員通常將數據加載到更適合處理業務規則的業務實體中。在本示例中,以邏輯模型表示關係數據庫 的構架,業務實體表示概念模型。實體框架使用映射層在模型之間搭建了橋樑。因此,實體框架的模型中有三個處於活動狀態的層:
1.    概念層(Conceptual layer - 表示數據的概念模型,包括實體和相互關係。
2.    邏輯層(Logical layer- 描述數據在數據庫的存儲模型。
3.    映射層(Mapping layer - 在概念層和邏輯層模型之間建立映射。
 
這三層允許將數據從關係數據庫映射到更加面向對象的業務模型。實體框架提供了使用 XML 文件定義這些層的方法。它還基於概念模型的架構生成了一系列類。可以針對這些類進行編程以直接與數據交互。這提供了抽象級別,因此開發人員可以針對概念模型而不是關係模型進行編程。
 
下面演示如何使用Entity Framework 構建示例程序。
首先,使用Entity Data Model Wizard創建如下NorthwindDB.edml文件。




概念模型和邏輯模型視圖:


 
本示例程序採用Northwind 示例數據庫,下面開始編寫代碼對Customers表進行增、刪、改、查等等操作。
 
1.新增Customers記錄
            using (NorthwindEntities myDb = new NorthwindEntities())
            {
                Customers customer = new Customers();
 
                Random rm = new Random();
 
                customer.CustomerID = "A" + rm.Next(9999).ToString();
                customer.CompanyName = "EntLib.com Forum";
                customer.Address = "http://www.EntLib.com";
 
                myDb.AddToCustomers(customer);
 
                int count = myDb.SaveChanges();
 
                txtCustomerID.Text = customer.CustomerID;
            }
 
2.更新Customers記錄
            using (NorthwindEntities myDb = new NorthwindEntities())
            {
                var query = from customer in myDb.Customers
                            where customer.CustomerID == txtCustomerID.Text.Trim()
                            select customer;
 
                foreach (var row in query)
                {
                    row.CompanyName = "Updated Company Name";
                }
 
                myDb.SaveChanges();
            }
 
3.刪除Customers記錄
            using (NorthwindEntities myDb = new NorthwindEntities())
            {
                var query = from customer in myDb.Customers
                            where customer.CustomerID == txtCustomerID.Text.Trim()
                            select customer;
 
                foreach (var row in query)
                {
                    myDb.DeleteObject(row);
                }
 
                myDb.SaveChanges();
            }
 
4.查詢Customers,返回所有記錄
            using (NorthwindEntities myDb = new NorthwindEntities())
            {
                dataGridView1.DataSource = myDb.Customers;
            }
 

如下的Entity Framework Demo 程序的運行界面:


 
本示例程序由http://forum.entlib.com 開源ASP.NET論壇小組提供,如有問題或疑問,歡迎訪問http://forum.entlib.com 論壇。
 
下載Demo 示例程序!

 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章