NHibernate多个实体之间的 查询条件Or

如下错误代码生成了查询条件[where (lcAddress.Branch like '%%' or lcAddress.Branch like '%%' ) and (lccompany.CompanyName like '%%') ]:
return (List)NhibernateHelper.ISession.CreateCriteria(typeof(lcAddress))
.Add(
Expression.Disjunction()
.Add(Expression.Like("Branch", KeyWord, MatchMode.Anywhere))
.Add(Expression.Like("Address", KeyWord, MatchMode.Anywhere))
)
.CreateCriteria("Company")
.Add(Restrictions.Like("CompanyName", KeyWord, MatchMode.Anywhere))
.SetResultTransformer(new NHibernate.Transform.DistinctRootEntityResultTransformer())
.List();
我要实现的效果是[where (lcAddress.Branch like '%%' or lcAddress.Branch like '%%' and lccompany.CompanyName like '%%') ]
代码该怎么写?

lcAddress.Branch like '%%' or lcAddress.Branch like '%%' and lccompany.CompanyName like '%%') 这个只要使用一个%就可以了

我要实现的是把 and lccompany.companyname...的开头的and 变成 OR
代码不知道怎么写!