我想用LINQ表達式得到的結果,其中一列的值是NULL使用LINQ Lambda表達式獲取其值的列NULL
search.AddCriteria(x => x.LogStatus ==
Inventory.AffStatusToChar((EAffidavitLogStatus)byte.Parse(cmbLog.SelectedValue)));
public void AddCriteria (Expression<Func<T, bool>> criteria) {
if (_where == null) { _where = w => true; }
_where = And(criteria);
}
private Expression<Func<T, bool>> And (Expression<Func<T, bool>> expr) {
return Expression.Lambda<Func<T, bool>>(Expression.And(
_where.Body,
Expression.Invoke(expr, _where.Parameters.Cast<Expression>())
), _where.Parameters);
}
//This below part is use to execute the Linq
//IQueryable<T> result = db.GetTable<T>();
//result = result.Where(_where);
結果的,其中一部分是尋找像WHERE ([t0].[LogStatus]) = @p5)
看,我想IS NULL
我想查詢這樣
SQL query : `select * from xyz where abc is NULL`
但LINQ表達上方轉換爲 select * from xyz where abc=NULL
它給出了不同的結果。
任何一個經歷過這種問題?如何在LINQ表達式中實現IS NULL
?
可能重複[轉換「爲空」成的LINQ to SQL語句(HTTP ://stackoverflow.com/questions/502328/converting-is-null-into-a-linq-to-sql-statement) – Ray 2012-01-13 10:15:50
1那個問題沒有解決,第二個問題不是'表達式' – FosterZ 2012-01-13 10:17:44
@射線: AddCriteria是一種用於過濾掉我的搜索的方法,此方法使用lamda表達式。現在'IQueryable result = db.GetTable ();'這給了我搜索結果 –
FosterZ
2012-01-13 10:21:06