作為ADO.NET實體框架的一部分,LINQ到實體比LINQ到SQL更靈活,但由於其複雜性和缺乏關鍵功能沒有太大的普及。但是,它沒有LINQ的限制SQL允許資料查詢,只能在SQL伺服器資料庫LINQ到實體中查詢大量資料,如Oracle,MySQL等資料提供方便資料查詢
此外,它已經得到了在這個意義上,使用者可以使用一個資料源控制元件執行通過LINQ到實體查詢,結果沒有任何需要額外的編碼有利於結合從ASP.Net支援。
LINQ到實體具有這些優點成為了標準機制,LINQ對資料庫的使用。另外,也可以與LINQ實體來改變查詢的資料的資訊和容易批次更新。最有趣的是有關LINQ到實體具有像SQL相同的語法,甚至有同組標準查詢運算子,如加入,選擇,排序等等。
ObjectContext是這裡的主類,使與實體資料模型或換句話說相互作用充當連線LINQ到資料庫的橋. 命令樹是這裡與實體框架相容的查詢表示。 實體框架,另一方面實際上是物件關係對映器一般簡稱ORM,由做業務物件的產生,以及實體按照資料庫表,便於各種基本操作,如建立,更新,刪除和讀取。
下面是一個圖表實體框架到更好地了解這一概念的。
首先新增實體模型按以下步驟。
步驟 1: 右鍵單擊專案,然後單擊新增新專案將開啟的視窗中按如下。選擇ADO.NET實體資料模型,並指定名稱,然後單擊新增。
步驟 2: 選擇從資料庫生成。
步驟 3: 選擇資料庫連線。
步驟 4: 選擇所有表
現在寫下面的程式碼。
using DataAccess; using System; using System.Linq; namespace LINQTOSQLConsoleApp { public class LinqToEntityModel { static void Main(string[] args) { using (LinqToSQLDBEntities context = new LinqToSQLDBEntities()) { //Get the List of Departments from Database var departmentList = from d in context.Departments select d; foreach (var dept in departmentList) { Console.WriteLine("Department Id = {0} , Department Name = {1}", dept.DepartmentId, dept.Name); } //Add new Department DataAccess.Department department = new DataAccess.Department(); department.Name = "Support"; context.Departments.Add(department); context.SaveChanges(); Console.WriteLine("Department Name = Support is inserted in Database"); //Update existing Department DataAccess.Department updateDepartment = context.Departments.FirstOrDefault(d =>d.DepartmentId == 1); updateDepartment.Name = "Account updated"; context.SaveChanges(); Console.WriteLine("Department Name = Account is updated in Database"); //Delete existing Department DataAccess.Department deleteDepartment = context.Departments.FirstOrDefault(d =>d.DepartmentId == 3); context.Departments.Remove(deleteDepartment); context.SaveChanges(); Console.WriteLine("Department Name = Pre-Sales is deleted in Database"); //Get the Updated List of Departments from Database departmentList = from d in context.Departments select d; foreach (var dept in departmentList) { Console.WriteLine("Department Id = {0} , Department Name = {1}", dept.DepartmentId, dept.Name); } } Console.WriteLine("\nPress any key to continue."); Console.ReadKey(); } } }
讓我們編譯和執行上面的程式,這將產生以下結果: