DbSession.Default.From()
.Select(Products._.ProductID, Products._.ProductName)
.ToDataTable();
SQL:SELECT [Products].[ProductID], [Products].[ProductName] FROM [Products]
.Select(Products._.ProductID, Products._.ProductName.As("pname"))
SQL:SELECT [Products].[ProductID], [Products].[ProductName] AS [pname] FROM [Products]
| 方法 | SQL 對應 | 說明 |
|---|---|---|
| Count() | COUNT(*) | 記錄數 |
| Sum() | SUM() | 合計 |
| Avg() | AVG() | 平均 |
| Max() | MAX() | 最大值 |
| Min() | MIN() | 最小值 |
| Len() | LEN() / LENGTH() | 字串長度 |
| Trim() | TRIM() | 去首尾空白 |
| Left(n) | LEFT(,n) | 左側 n 字元 |
| Right(n) | RIGHT(,n) | 右側 n 字元 |
| Substring(start, end) | SUBSTRING(,start,end) | 子字串 |
var dt = DbSession.Default.From()
.Select(
Products._.CategoryID,
Products._.UnitPrice.Avg().As("AvgPrice"),
Products._.UnitPrice.Max().As("MaxPrice"),
Products._.UnitPrice.Min().As("MinPrice"),
Products._.ProductID.Count().As("ProdCount"))
.GroupBy(Products._.CategoryID)
.ToDataTable();
產生標準 GROUP BY 聚合 SQL,欄位別名對應 DataTable 欄名,直接繫結報表/圖表。
Field.All 等同 SELECT *。Field.All.Count() 等同 COUNT(*)。掌握 Select/As/Field 函數,即可在 ORM 層直接表達複雜投影與聚合,避免落地 SQL 字串,享受型別安全與重構友善。