【发布时间】:2015-11-17 12:10:34
【问题描述】:
我正在使用实体框架 6.1.3 和 .net 框架 4.5.1 和 C# 语言。
我想做的是;我想将表达式与 if-else 语句结合起来。
这是我的表情
Expression<Func<Article, bool>> expression =
q => (!newsDayStart.HasValue || q.PublishedOn >= newsDayStart) &&
(!newsDayEnd.HasValue || q.PublishedOn <= newsDayEnd) &&
(!categoryId.HasValue || q.CategoryId == categoryId.Value) &&
(string.IsNullOrEmpty(searchText) || q.Title.Contains(searchText) &&
(!isActive != null || q.IsActive == isActive.Value));
到
Expression<Func<Article, bool>> expression = ......;
if ( newsDayStart.HasValue )
{
//Obviosly += this statement will not work.
expression += q => q.PublishedOn > = newsDayStart
}
//TODO write other if else statements...
//Send expression
_context.Articles.Where(expression).Count();
【问题讨论】:
-
这看起来可能是“组合两个表达式 (Expression
>)”stackoverflow.com/questions/457316/… 的副本 -
可能使用正则表达式
标签: c# entity-framework linq