ADO.NET Entity Framework 入门示例向导(附Demo程序下载)
生活随笔
收集整理的這篇文章主要介紹了
ADO.NET Entity Framework 入门示例向导(附Demo程序下载)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
ADO.NET Entity Framework 入門(mén)示例向?qū)?#xff08;附Demo程序下載) ADO.NET Entity Framework 是.Net Framework 3.5 SP1 引入的實(shí)體框架,它使開(kāi)發(fā)人員可以通過(guò)對(duì)象模型(而不是邏輯/關(guān)系數(shù)據(jù)模型)專注于數(shù)據(jù)。實(shí)體框架Entity Framework使用概念層、映射層和邏輯層將邏輯數(shù)據(jù)庫(kù)結(jié)構(gòu)抽象化。本文http://forum.entlib.com 開(kāi)源論壇小組提供。 實(shí)體數(shù)據(jù)模型(Entity Data Model) 實(shí)體框架的核心位于其模型中。實(shí)體框架支持表示數(shù)據(jù)庫(kù)中的關(guān)系架構(gòu)的邏輯存儲(chǔ)模型。關(guān)系數(shù)據(jù)庫(kù)通常存儲(chǔ)數(shù)據(jù)的方式與應(yīng)用程序使用數(shù)據(jù)的方式不同。通常,這會(huì)迫使開(kāi)發(fā)人員按照數(shù)據(jù)庫(kù)包含數(shù)據(jù)的結(jié)構(gòu)檢索數(shù)據(jù)。因此,開(kāi)發(fā)人員通常將數(shù)據(jù)加載到更適合處理業(yè)務(wù)規(guī)則的業(yè)務(wù)實(shí)體中。在本示例中,以邏輯模型表示關(guān)系數(shù)據(jù)庫(kù)的構(gòu)架,業(yè)務(wù)實(shí)體表示概念模型。實(shí)體框架使用映射層在模型之間搭建了橋梁。因此,實(shí)體框架的模型中有三個(gè)處于活動(dòng)狀態(tài)的層: 1.??? 概念層(Conceptual layer) - 表示數(shù)據(jù)的概念模型,包括實(shí)體和相互關(guān)系。 2.??? 邏輯層(Logical layer)- 描述數(shù)據(jù)在數(shù)據(jù)庫(kù)的存儲(chǔ)模型。 3.??? 映射層(Mapping layer) - 在概念層和邏輯層模型之間建立映射。 這三層允許將數(shù)據(jù)從關(guān)系數(shù)據(jù)庫(kù)映射到更加面向?qū)ο蟮臉I(yè)務(wù)模型。實(shí)體框架提供了使用 XML 文件定義這些層的方法。它還基于概念模型的架構(gòu)生成了一系列類。可以針對(duì)這些類進(jìn)行編程以直接與數(shù)據(jù)交互。這提供了抽象級(jí)別,因此開(kāi)發(fā)人員可以針對(duì)概念模型而不是關(guān)系模型進(jìn)行編程。 下面演示如何使用Entity Framework 構(gòu)建示例程序。 首先,使用Entity Data Model?Wizard創(chuàng)建如下NorthwindDB.edml文件。
概念模型和邏輯模型視圖:
本示例程序采用Northwind 示例數(shù)據(jù)庫(kù),下面開(kāi)始編寫(xiě)代碼對(duì)Customers表進(jìn)行增、刪、改、查等等操作。 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 程序的運(yùn)行界面:
本示例程序由http://forum.entlib.com 開(kāi)源ASP.NET論壇小組提供,如有問(wèn)題或疑問(wèn),歡迎訪問(wèn)http://forum.entlib.com 論壇。 下載Demo 示例程序!
概念模型和邏輯模型視圖:
本示例程序采用Northwind 示例數(shù)據(jù)庫(kù),下面開(kāi)始編寫(xiě)代碼對(duì)Customers表進(jìn)行增、刪、改、查等等操作。 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 程序的運(yùn)行界面:
本示例程序由http://forum.entlib.com 開(kāi)源ASP.NET論壇小組提供,如有問(wèn)題或疑問(wèn),歡迎訪問(wèn)http://forum.entlib.com 論壇。 下載Demo 示例程序!
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/entlibforum/archive/2008/08/23/1274701.html
總結(jié)
以上是生活随笔為你收集整理的ADO.NET Entity Framework 入门示例向导(附Demo程序下载)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 通过自定义ISAPI Filter来禁止
- 下一篇: 深入ASP.NET数据绑定(中)——数据