Does it work query the relationships from the other direction? I tried
building a similar query with my own domain model, but the
relationships weren't quite the same. Here's what I was thinking, not
sure if it will work. This is with lambda extensions, but without
creating aliases.

var query = session.CreateCriteria<Contract>()
        .Add<Contract>(c => c.Unit.Id == unitId)
        .SetProjection(LambdaProjection.Property<Contract>(c =>
c.Categories));


On Aug 19, 3:04 pm, Melborp <[email protected]> wrote:
> The subject is confusing, i couldnt figure out a way to ask it in
> clear english. I do have a sample code which will clear it up.
>
> Imagine having three entities:
> Category
> Contract
> Unit
>
> Contract and Category have a many to many relationship.
> Contract also has one-to-one with Unit.
>
> My interest is to get all categories that specific unit contracts
> have. A Criteria could be described as next:
>
> var query = _nHibernateSession.CreateCriteria<Category>("cat")
> .CreateAlias("cat.Contracts", "contract")
> .Add(Expression.Eq("contract.Unit.Id", unitId));
>
> or with lambda extensions:
>
> Category categoryAlias = null;
> Contract contractAlias = null;
>
> var query = _nHibernateSession.CreateCriteria(typeof (Category), () =>
> categoryAlias)
>                 .CreateAlias(() => categoryAlias.Contracts, () => 
> contractAlias)
>                 .Add(() => contractAlias.Unit.Id == unitId);
>
> This however seems to have a sideeffect of loading in all the
> referencing Contracts as well. I only want the categories loaded in.
> Contract is a very complex entity and is completely unnessecary in the
> current context.
>
> Can this be done with Criteria API?
> I tried to SetFetchMode  to Lazy for category.Contracts but that had
> no effect. The SQL query generated selects contracts with each
> category.
>
> This is however the only way i could query for categories with the
> condition needed. Am i missing something?
> I prefer a no magic string solution and thats also why i have two
> different query representations that are working. I must admit that
> the non lambda is more readable. I wish Nhib to Linq could do this in
> 2.1.2.

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en.

Reply via email to