首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

Hxj.Data 查詢操作核心:From 查詢鏈、ToList/ToDataTable/ToFirst/ToScalar 多種回傳

     編輯:關於ASP.NET

DbSession 入口與預設連線

// 自動讀取 connectionStrings 最後一個節點
var db = DbSession.Default;

// 指定連線字串名稱
var db2 = new DbSession("NorthwindConnectionString");

// 指定型別與連線字串
var db3 = new DbSession(DatabaseType.SqlServer, "Data Source=...;Initial Catalog=Northwind;Integrated Security=True");

From 查詢鏈核心方法

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)

回傳型別選擇指南

方法回傳型別適用場景
ToListList<T>實體集合、資料繫結、LINQ to Objects 再處理
ToFirstT單一實體、明細頁、PK 查詢
ToDataTableDataTable報表、動態欄位、GridView 直接繫結
ToDataSetDataSet多結果集、離線資料傳遞
ToDataReaderIDataReader大量資料流式讀取、低記憶體
ToScalarobjectCOUNT/SUM 等純量統計

FromSection 內部封裝

DbSession.Default.From<T>() 回傳 FromSection<T>,封裝:

  • 查詢欄位
  • 條件
  • 排序
  • 分頁
  • Join/Union
  • GroupBy/Distinct

所有查詢構建皆在 FromSection 完成,終端方法才發送 SQL。

複雜報表建議

超過 3-4 個 Join、複雜子查詢、動態 PIVOT 等,建議直接寫 SQL/預存程序(FromSql/FromProc),ORM 專注於 80% 標準 CRUD 查詢。

From 查詢鏈以流暢介面、強型別、零字串拼接,讓 80% 查詢需求在 C# 編譯期完成驗證,是 Hxj.Data 核心價值所在。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved