遇到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"));
< - 无效
答案 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%
检查: