![](/img/trans.png)
[英]HasValue() or ?? operand when dealing with nullable types in LINQ-to-Entity,
[英]Casting a nullable in where clause in LinQ-to-entity without null-check
我知道我不能將具有'null'值的可為null的int強制轉換為不可為null的int。
int? v = null;
int w = (int)v;
因此,我首先對where子句進行了空檢查。 但是現在我看到,即使沒有它,它似乎仍然可以工作,那怎么可能?
我知道我有很多LogEmneId
在數據庫中為空。
foreach (var logMaaler in ctx.LogMaalers.Where(lm =>
// (lm.LogEmneId != null && logEmner.Contains((short)lm.LogEmneId))
logEmner.Contains((short)lm.LogEmneId)
))
{
}
LinQ-to-entity語句是否被重寫為可為我處理空檢查的sql查詢?
LinQ-to-entity語句是否被重寫為可為我處理空檢查的sql查詢?
的種類。 Contains
轉換為SQL查詢中的IN
子句,該子句在使用NULL
值時效果很好。 考慮以下查詢:
SELECT *
FROM Table
WHERE Id IN (1,2,3,4,5,6,7)
當您在Id
列中包含NULL
的行時,它將正常工作。 而這正是這里發生的事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.