| 方法 | SQL |
|---|---|
| SubQueryEqual | = |
| SubQueryNotEqual | <> |
| SubQueryLess | < |
| SubQueryLessOrEqual | <= |
| SubQueryGreater | > |
| SubQueryGreaterOrEqual | >= |
| SubQueryIn | IN |
| SubQueryNotIn | NOT IN |
DbSession.Default.From()
.Where(Products._.CategoryID.SubQueryEqual(
DbSession.Default.From()
.Where(Categories._.CategoryName == "Produce")
.Select(Categories._.CategoryID)
.Top(1)))
.ToList();
SQL:SELECT * FROM [Products] WHERE [Products].[CategoryID] = (SELECT TOP 1 [Categories].[CategoryID] FROM [Categories] WHERE [Categories].[CategoryName] = @p0)
DbSession.Default.From()
.Where(Products._.CategoryID.SubQueryNotIn(
DbSession.Default.From()
.Where(Categories._.CategoryName == "Produce")
.Select(Categories._.CategoryID)))
.ToList();
SQL:SELECT * FROM [Products] WHERE [Products].[CategoryID] NOT IN (SELECT [Categories].[CategoryID] FROM [Categories] WHERE [Categories].[CategoryName] = @p0)
Select 欄位型別必須與外層比較欄位相容,編譯期檢查。AddSelect,見第 28 篇)。子查詢支援讓 Hxj.Data 能表達更豐富的關聯邏輯,同時保持 ORM 的型別安全與可組合性。