我需要在 linq 中使用條件“field is null”,我嘗試使用“field == null”,但它沒有給我帶來記錄。
var query = from p in _context.Product
where p.PRODUCT_IND_CHANGE == null
select new ProductViewModel { Id = p.PRODUCT_ID, name = p.PRODUCT_NAME };
我做了這個小子查詢來理解為什么它不起作用。
SELECT
(SELECT count(1)
FROM PRODUCTS
WHERE PRODUCT_IND_CHANGE != NULL
) AS SYMBOL_OPERATOR1
,(SELECT count(1)
FROM PRODUCTS
WHERE PRODUCT_IND_CHANGE IS NULL
) AS SYMBOL_OPERATOR2
FROM DUAL

有沒有辦法在 linq 中使用“欄位為空”或模擬它?
圖書館:
- Microsoft.EntityFrameworkCore(版本 6.0.8)
- Oracle.EntityFrameworkCore(版本 6.21.61)
更新 1:
我剛剛檢查了日志,它在轉換為 pl sql 代碼時列印以下內容
2022-10-06 17:36:53.0309|DEBUG|Microsoft.EntityFrameworkCore.Query|192.168.1.15|Generated query execution expression:
'queryContext => new SingleQueryingEnumerable<ProductViewModel>(
(RelationalQueryContext)queryContext,
RelationalCommandCache.SelectExpression(
Projection Mapping:
Id -> 0
Name -> 1
SELECT s.PRODUCT_ID AS Id, s.PRODUCT_NAME AS Name
FROM PRODUCT AS s
WHERE s.PRODUCT_IND_CHANGE == NULL),
Func<QueryContext, DbDataReader, ResultContext, SingleQueryResultCoordinator, ProductViewModel>,
API.SGA.Products.Data.DbContext,
False,
False,
True
)'|
uj5u.com熱心網友回復:
您班級的“PRODUCT_IND_CHANGE”屬性是否可以為空?就像是
public int? PRODUCT_IND_CHANGE {get; set; }
uj5u.com熱心網友回復:
你試過了嗎
where p.PRODUCT_IND_CHANGE.Equals(null)
在林克?
在 SQL 中應該是
WHERE PRODUCT_IND_CHANGE IS NOT NULL
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/511738.html
