LINQ 技術(即LINQ to Entities)使開發人員能夠通過使用LINQ 表達式和LINQ 標准查詢運算符,直接從開發環境中針對實體框架對象上下文創建靈活的強類型查詢。LINQ to Entities查詢使用對象服務基礎結構。ObjectContext 類是作為CLR 對象與實體數據模型進行交互的主要類。開發人員通過ObjectContext構造泛型ObjectQuery實例。ObjectQuery 泛型類表示一個查詢,此查詢返回一個由類型化實體組成的實例或集合。返回的實體對象可供更新並位於對象上下文中。以下是創建和執行LINQ to Entities查詢的過程:
1.從ObjectContext構造ObjectQuery實例。
2.通過使用ObjectQuery實例在C#或Visual Basic中編寫 LINQ to Entities查詢。
3.將LINQ 標准查詢運算符和表達式將轉換為命令目錄樹。
4.對數據源執行命令目錄樹表示形式的查詢。執行過程中在數據源上引發的任何異常都將直接向上傳遞到客戶端。
5.將查詢結果返回到客戶端。
一、Linq To Entities簡單查詢
下面將介紹簡單的Linq To Entities查詢,相關的查詢語法可以使用基於表達式或基於方法的語法。本節使用的TestDriver.Net配合Nunit2.4進行測試。
1,投影
代碼如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Data.Objects;
using NUnit.Framework;
namespace NorthWindModel
{
[TestFixture]
public class TestEFModel
{
[Test]
public void Select()
{
using (var edm = new NorthwindEntities())
{
//基於表達式的查詢語法
ObjectQuery<Customers> customers = edm.Customers;
IQueryable<Customers> cust1 = from c in customers
select c;
Assert.Greater(cust1.Count(), 0);
//使用ObjectQuery類的ToTraceString()方法顯示查詢SQL語句
Console.WriteLine(customers.ToTraceString());
}
}
}
}