Nhibernate 如何使用QueryOver api将限制中的别名作为目标?

Nhibernate 如何使用QueryOver api将限制中的别名作为目标?,nhibernate,Nhibernate,据我所知,QueryOverAPI不允许按名称引用别名,而是使用类型化对象。如何向针对别名的查询添加限制 例如,我想完成以下类似的工作: var query = session.QueryOver<Person>().JoinQueryOver(x => x.Dogs, () => dogAlias); return query.Where(Restrictions.Disjunction() .Add(Restrictio

据我所知,QueryOverAPI不允许按名称引用别名,而是使用类型化对象。如何向针对别名的查询添加限制

例如,我想完成以下类似的工作:

var query = session.QueryOver<Person>().JoinQueryOver(x => x.Dogs, () => dogAlias);

return query.Where(Restrictions.Disjunction()
                       .Add(Restrictions.Like("Name", searchQuery, MatchMode.Anywhere))
                       .Add(Restrictions.Like("dogAlias.Name", searchQuery, MatchMode.Anywhere)));
var query=session.QueryOver().JoinQueryOver(x=>x.Dogs,()=>dogAlias);
返回query.Where(Restrictions.Disjunction()
.Add(限制,如(“名称”、搜索查询、匹配模式、任意位置))
.Add(Restrictions.Like(“dogalis.Name”、searchQuery、MatchMode.Anywhere));
而不是:

Restrictions.Like("dogAlias.Name", searchQuery, MatchMode.Anywhere)
使用:

因此,完整的查询将变成:

var query = session.QueryOver<Person>()
            .JoinQueryOver(x => x.Dogs, () => dogAlias);

return query.Where(Restrictions.Disjunction()
                .Add(Restrictions.On<Person>(p => p.Name).IsLike(searchQuery, MatchMode.Anywhere))
                .Add(Restrictions.On(() => dogAlias.Name).IsLike(searchQuery, MatchMode.Anywhere)));
var query=session.QueryOver()
.JoinQueryOver(x=>x.Dogs,()=>dogAlias);
返回query.Where(Restrictions.Disjunction()
.Add(Restrictions.On(p=>p.Name).IsLike(searchQuery,MatchMode.Anywhere))
.Add(Restrictions.On(()=>dogalis.Name).IsLike(searchQuery,MatchMode.Anywhere));
var query = session.QueryOver<Person>()
            .JoinQueryOver(x => x.Dogs, () => dogAlias);

return query.Where(Restrictions.Disjunction()
                .Add(Restrictions.On<Person>(p => p.Name).IsLike(searchQuery, MatchMode.Anywhere))
                .Add(Restrictions.On(() => dogAlias.Name).IsLike(searchQuery, MatchMode.Anywhere)));