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

Hxj.Data 模糊查詢與 In/Not In:Contain/BeginWith/EndWith、SelectIn/SelectNotIn 完整指南

     編輯:關於ASP.NET

模糊查詢三大方法

方法SQL (SQL Server)語意
Contain("kw")LIKE '%kw%'全模糊(包含)
BeginWith("kw")LIKE 'kw%'左比對(開頭)
EndWith("kw")LIKE '%kw'右比對(結尾)

程式碼範例

// ProductName 包含 "apple"
Products._.ProductName.Contain("apple")

// ProductName 以 "apple" 開頭
Products._.ProductName.BeginWith("apple")

// ProductName 以 "apple" 結尾
Products._.ProductName.EndWith("apple")

In / Not In 查詢

SelectIn(值清單)

DbSession.Default.From()
    .Where(Products._.CategoryID.SelectIn(1, 2, 3))
    .ToList();

SQL:WHERE [CategoryID] IN (@p0, @p1, @p2),參數自動化。

泛型版本(避免裝箱)

.Where(Products._.CategoryID.SelectIn(1, 2, 3)) // 推薦

SelectNotIn

.Where(Products._.CategoryID.SelectNotIn(1, 2, 3))

SQL:WHERE [CategoryID] NOT IN (@p0, @p1, @p2)

參數化與效能細節

  • 每個值產生一個參數(@p0, @p1...),執行計畫可重用。
  • 值清單過長(>1000)可能觸發 SQL Server 參數數量限制,建議改用 JOIN 暫存表或 EXISTS 子查詢。
  • Contain 產生 LIKE '%kw%' 無法使用索引,大量資料考慮 Full-Text Search。

實戰組合範例

var list = DbSession.Default.From()
    .Where(
        Products._.ProductName.Contain("apple") &&
        Products._.UnitPrice > 10 &&
        Products._.CategoryID.SelectIn(1, 2, 3))
    .OrderBy(Products._.UnitPrice.Desc)
    .Page(20, 1)
    .ToList();

模糊查詢、範圍比較、In 清單無縫組合,強型別、零字串拼接,是 Hxj.Data 查詢 API 表達力的核心展現。

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