I have an "Estate" entity, and this entity has a collection "EstateFeatures"(type:EstateFeature) and EstateFeature has a property "MyFeatureValue".
Note: These are the limited properties for the question. All Entities has an Id and all necesarry etc
Estate
IList<EstateFeature> EstateFeatures;
EstateFeature
FeatureValue MyFeatureValue;
FeatureValue
public virtual long Id;
I am trying to get Real Estates which have the given FeatureValue.Id
DetachedCriteria query = DetachedCriteria.For<Estate>();
Conjunction and = new Conjuction();
foreach (var id in idCollection)
and.Add(Expression.Eq("MyFeatureValue.Id",id);
query
.CreateCriteria("EstateFeatures")
.Add(and);
IList<Estate> estates = query.GetExecutableCriteria(session).List<Estate>();
Nothing returned from this query, am i doing something wrong ?
Thanks
If I understand correctly I think something like this might work
CreateCriteria(typeof(Estate))
.CreateAlias("EstateFeatures", "estatefeature")
.Add(Restrictions.In("estatefeature.MyFeatureValue.Id", ids))
.List<Estate>();