Linq包含运算符不起作用

时间:2014-07-14 08:29:30

标签: .net linq nhibernate where contains

遇到linq使用问题。 当我使用.Where(m=> m.Name == "name")时,它可以正常工作,但是当我使用.Where(m=> m.Name.Contains("name"))时,它不会。

我的查询是

return summary.JoinAlias(s => s.District, () => district, NHibernate.SqlCommand.JoinType.LeftOuterJoin).Where(() => district.Name. == "ALEK");< - 作品

return summary.JoinAlias(s => s.District, () => district, NHibernate.SqlCommand.JoinType.LeftOuterJoin).Where(() => district.Name.Contains("ALEK"));< - 无效

1 个答案:

答案 0 :(得分:1)

JoinAlias QueryOver语法的一部分。对于Contains(),我们应该使用它:

return summary
    .JoinAlias(s => s.District, () => district
                  , NHibernate.SqlCommand.JoinType.LeftOuterJoin)
    .WhereRestrictionOn(() => district.Name) // here we say what to restrict
        .IsLike("ALEK", MatchMode.Anywhere)  // and we say to use LIKE
    ;                                        // matching as: %ALEK%

检查: