开发者

NHibernate many-to-many criteria

开发者 https://www.devze.com 2023-01-17 10:11 出处:网络
I have entity Problem mapped using many-to-many to entity Tag (Problem has a list of tags). I want to load all the Problems, which have specific Tags.

I have entity Problem mapped using many-to-many to entity Tag (Problem has a list of tags). I want to load all the Problems, which have specific Tags.

For example:

Problem1 (tag1)

Problem2 (tag1, tag2)

Problem3 (tag1, tag3)

Problem4 (tag3, tag4)

I want to get the problems by filter "tag1, tag2". The system 开发者_如何学Goshall return:

Problem1 (tag1)

Problem2 (tag1, tag2)

Problem3 (tag1, tag3)

I have been puzzling over this problem for a week already. Have you any ideas?

P.S. Load all the list and filter it using LINQ is the last possible variant...


HQL is a better fit for these queries than Criteria.

One possible solution:

session.CreateQuery(@"select distinct p
                      from Problem p
                      join p.Tags t
                      where t in (:tags)")
       .SetParameterList("tags", listOfTags)
0

精彩评论

暂无评论...
验证码 换一张
取 消