Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

NHibernate QueryOver with ManytoMany

I'm in the process of learning QueryOver, but I can't for my life figure out how to do simple many to many queries.

I've written the following:

            var result = Session.CreateCriteria(typeof (Product))
                .CreateAlias("Categories", "categories")
                .Add(Property.ForName("categories.Id").Eq(categoryId))
                .List<Product>();

This achieves the desired result. Basically I have

Product > ProductCategory < Category

ProductCategory just has ProductId / CategoryId, and I'm trying to select all the products in a specific category.

I have no idea where to start with trying to do this with queryover.

like image 636
Phill Avatar asked Oct 10 '10 14:10

Phill


1 Answers

I ended up resolving this after a lot of perseverance.

            var result = Session.QueryOver<Product>()
                            .Right.JoinQueryOver<Category>(x => x.Categories)
                            .Where(c => c.Id == categoryId)
                            .List();

What a mission :)

like image 181
Phill Avatar answered Oct 04 '22 13:10

Phill