0
我有這些實體: ClassB1和ClassB2是兩個獨立的實體。他們有單獨的表格,但是有相同的字段。nhibernate查詢,只選擇特定字段
他們都有引用的ClassC有一個單獨的表。
ClassA
-> ClassB1
-> Property1
-> ClassC
-> Property2
-> ClassB2
-> Property1
-> ClassC
-> Property2
我需要查詢Property1和Property2,到目前爲止我有這:
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();
我看到突起而是將樣品連接到一個標準的對象。我只是新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的查詢是否正確?
你是如何映射這些表格的?你能表演嗎? –