Hello,
I've the following many to many relation: File 1 --- * File_Insurer *
--- 1 Insurer. I'm trying to query this relation using the Criteria
API (Active Record) to get Files that meet ALL specified Insurers (Get
all Files where Insurer.Id == 2 AND Insurer.Id == 3).
I tried many solutions:
DetachedCriteria dc = DetachedCriteria.For<File>();
dc.SetResultTransformer(new DistinctRootEntityResultTransformer());
dc.CreateCriteria("Insurers").Add(Expression.Eq("Id", long.Parse
("2")));
dc.CreateCriteria("Insurers").Add(Expression.Eq("Id", long.Parse
("3")));
List<File> searchResults = File.FindAll(dc).ToList<File>();
That gives me a error "duplicate association path: Insurers".
Next option:
DetachedCriteria dc = DetachedCriteria.For<File>();
dc.SetResultTransformer(new DistinctRootEntityResultTransformer());
dc.CreateCriteria("Insurers").Add(Expression.And(Expression.Eq("Id",
long.Parse("3")), Expression.Eq("Id", long.Parse("2"))));
List<File> searchResults = File.FindAll(dc).ToList<File>();
The result list is empty (but shouldn't).
Next option with alias:
DetachedCriteria dc = DetachedCriteria.For<File>();
dc.SetResultTransformer(new DistinctRootEntityResultTransformer());
dc.CreateAlias("Insurers", "i").Add(Expression.Eq("i.Id", long.Parse
("2"))).Add(Expression.Eq("i.Id", long.Parse("3")));
List<File> searchResults = File.FindAll(dc).ToList<File>();
The result list is empty again - strange.
Next try:
DetachedCriteria dc = DetachedCriteria.For<File>();
dc.SetResultTransformer(new DistinctRootEntityResultTransformer());
List<long> insurerIds = new List<long>();
insurerIds.Add(2);
insurerIds.Add(3);
dc.CreateCriteria("Insurers").Add(Expression.In("Id", insurerIds));
List<File> searchResults = File.FindAll(dc).ToList<File>();
This works somehow, but the result set contains a all possible options
(OR) - it's not an exact match.
I'm very confused on this topic. Any help would be highly appreciated.
Regards,
Jakub
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---