Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nhibernate 如何在表达式中设置两个以上的表达式。或_Nhibernate_Criteria_Expression_Icriteria - Fatal编程技术网

Nhibernate 如何在表达式中设置两个以上的表达式。或

Nhibernate 如何在表达式中设置两个以上的表达式。或,nhibernate,criteria,expression,icriteria,Nhibernate,Criteria,Expression,Icriteria,我想创建一个包含3-4个以上表达式的查询。或者?但是表达式。或者让我在其中添加两个表达式 if (!string.IsNullOrEmpty(keyword)) query .Add(Expression.Or( Expression.Like("Name", keyword, MatchMode.Anywhere),

我想创建一个包含3-4个以上表达式的查询。或者?但是表达式。或者让我在其中添加两个表达式

if (!string.IsNullOrEmpty(keyword))
                query
                    .Add(Expression.Or(
                             Expression.Like("Name", keyword, MatchMode.Anywhere),
                             Expression.Like("LastName", keyword, MatchMode.Anywhere)))
                    .Add(Expression.Or(
                             Expression.Like("Email1", keyword, MatchMode.Anywhere),
                             Expression.Like("Email2", keyword, MatchMode.Anywhere)));
上面的代码会生成“类似于%this%的名称或类似于%this%的LastName”和类似于%this%的Email1和类似于%this的Email2


提前感谢。

使用代替或。

您也可以使用| |代替或()或析取().

非常感谢,我还有一个问题。我想在查询这个表的同时查询另一个表。例如,我想让id=Group的客户。CustomerId请为此创建另一个问题,它与这个问题无关。我真的不明白在使用Linq api和Expressions@Alexandre:t请仔细查看问题和答案的日期。此外,该问题带有“criteria”标记@Alexandre:如果在当时有NHibernate的LINQ提供程序,则是contrib提供程序被破坏了。criteria API使用得更为广泛。内置LINQ提供程序是一个相对较新的添加。以下是我要介绍的内容不久前,对于实体框架,相同的代码适用于nHibernate:@Alexandre:您的解决方案适用于LINQ提供程序。这个问题是关于nHibernate标准API的。