0
이 엔티티가 있습니다. ClassB1과 ClassB2는 두 개의 별도 엔티티입니다. 그들은 별도의 테이블을 가지고 있지만 동일한 필드가 있습니다.nhibernate 질의, 특정 필드 만 선택
둘 다 별도의 테이블이있는 ClassC를 참조합니다.
ClassB1 classB1Alias = null;
ClassB2 classB2Alias = null;
ClassC classCAlias = null;
var query = s.QueryOver<ClassA>();
if (!string.IsNullOrWhiteSpace(searchFilter.Property1))
{
query.JoinAlias(d => d.ClassB1,() => classB1Alias);
query.WhereRestrictionOn(() => classB1Alias.Property1)
.IsLike("%" + searchFilter.Property1 + "%");
query.JoinAlias(p => p.ClassB2,() => classB2Alias);
query.WhereRestrictionOn(() => classB2Alias.Property1)
.IsLike("%" + searchFilter.Property1+ "%");
}
if (!string.IsNullOrWhiteSpace(searchFilter.Property2))
{
query.JoinAlias(d => d.ClassB1.ClassC,() => classCAlias);
query.JoinAlias(d => d.ClassB2.ClassC,() => classCAlias);
query.WhereRestrictionOn(() => classCAlias.Property2)
.IsLike("%" + searchFilter.Property2+ "%");
}
// select only Property1 and Property2 here
return query.List();
내가 본 예측하지만, 샘플은 기준 개체에 연결됩니다
ClassA
-> ClassB1
-> Property1
-> ClassC
-> Property2
-> ClassB2
-> Property1
-> ClassC
-> Property2
은 지금까지 나는이 있고, 속성 1 및 Property2를 조회 할 필요가있다. 임 NHibernate에 그냥 새로운 내가
Select all ClassB1 and ClassB2 which have a Property1 equal to x where ClassB1.ClassC.Property2 and ClassB2.ClassC.Property2 equal to y
ps. Property2에 대한 내 쿼리가 정확합니까?
어떻게 이러한 테이블을 매핑 했습니까? 보여 줄래? –