// 自動讀取 connectionStrings 最後一個節點
var db = DbSession.Default;
// 指定連線字串名稱
var db2 = new DbSession("NorthwindConnectionString");
// 指定型別與連線字串
var db3 = new DbSession(DatabaseType.SqlServer, "Data Source=...;Initial Catalog=Northwind;Integrated Security=True");
DbSession.Default.From()
// .Select(Products._.ProductID) // 指定回傳欄位
// .GroupBy(Products._.CategoryID.GroupBy ...) // 分組
// .InnerJoin(...) // 關聯查詢
// .OrderBy(Products._.ProductID.Asc) // 排序
// .Where((Products._.ProductName.Contain("apple") && Products._.UnitPrice > 1) || Products._.CategoryID == 2) // 條件
// .UnionAll(...) // 聯集
// .Distinct() // 去重
// .Top(5) // 前 N 筆
// .Page(10, 2) // 分頁
// .ToDataSet() // DataSet
// .ToDataReader() // IDataReader
// .ToDataTable() // DataTable
// .ToScalar() // 純量 (object)
// .ToList() // List 實體集合
// .ToFirst() // 單一實體 (FirstOrDefault)
| 方法 | 回傳型別 | 適用場景 |
|---|---|---|
| ToList | List<T> | 實體集合、資料繫結、LINQ to Objects 再處理 |
| ToFirst | T | 單一實體、明細頁、PK 查詢 |
| ToDataTable | DataTable | 報表、動態欄位、GridView 直接繫結 |
| ToDataSet | DataSet | 多結果集、離線資料傳遞 |
| ToDataReader | IDataReader | 大量資料流式讀取、低記憶體 |
| ToScalar | object | COUNT/SUM 等純量統計 |
DbSession.Default.From<T>() 回傳 FromSection<T>,封裝:
所有查詢構建皆在 FromSection 完成,終端方法才發送 SQL。
超過 3-4 個 Join、複雜子查詢、動態 PIVOT 等,建議直接寫 SQL/預存程序(FromSql/FromProc),ORM 專注於 80% 標準 CRUD 查詢。
From 查詢鏈以流暢介面、強型別、零字串拼接,讓 80% 查詢需求在 C# 編譯期完成驗證,是 Hxj.Data 核心價值所在。