【发布时间】:2014-09-05 12:29:13
【问题描述】:
我想获取如下记录
SearchResult.condition 为 null 然后从 Person
获取所有行如果 SearchResult.condition 为 false,则获取 PersonType 列包含空值的行
如果 SearchResult.condition 为真,则获取 PersonType 列包含非空值的行
struct SearchResult
{
public string Name;
public bool? condition;
}
Expression<Func<Person, bool>> expression;
if(condition==null)
{
expression= (a =>
(SearchResult.Name==null || a.Name == SearchResult.Name)
);
}
else if(condition.Value == true)
{
expression= (a =>
(SearchResult.Name==null || a.Name == SearchResult.Name)
&& a.PersonType != null)
}
else if(condition.Value == false)
{
expression= (a =>
(SearchResult.Name==null || a.Name == SearchResult.Name)
&& a.PersonType == null)
}
我想将表达式写在一个表达式中,而不是使用 if else 条件。你能帮我吗?
【问题讨论】:
-
您希望
condition.Value的值在计算表达式时计数还是在创建表达式时计数?我也猜这是一个更大问题的一部分,那是什么问题?
标签: c# sql linq lambda expression