ObjectQuery<T> 支援 LINQ to Entities 與 ESQL 查詢,並提供一組查詢建構器方法(Where、OrderBy、Skip、Top 等)以鏈式方式建構命令樹。
Execute(MergeOption):執行查詢並指定追蹤模式(NoTracking、AppendOnly 等)。GetResultType():回傳查詢結果的 CLR 型別資訊。ToTraceString():取得對應的資料庫 SQL 語句,利於除錯與調校。using (var edm = new NorthwindEntities()) {
string esql = "select value c from NorthwindEntities.Customers as c order by c.CustomerID limit 10";
ObjectQuery<Customers> query = edm.CreateQuery<Customers>(esql);
ObjectResult<Customers> results = query.Execute(MergeOption.NoTracking);
Assert.AreEqual(results.Count(), 10);
foreach (Customers c in query)
Console.WriteLine(c.CustomerID);
}
| 值 | 行為 |
|---|---|
| AppendOnly | 預設,僅附加新實體,不覆寫既有追蹤實體。 |
| OverwriteChanges | 以資料庫值覆寫本地變更。 |
| PreserveChanges | 保留本地變更,更新原始值,適合處理樂觀並發衝突後強制存檔。 |
| NoTracking | 不追蹤、不載入導航屬性,效能最佳。 |