Avant de demander que j'ai regardé tous les messages pertinents sur ce sujetNHibernate Many-to-Many requête en utilisant l'API de critères
J'ai aussi lu ce post de blog: http://ayende.com/Blog/archive/2007/12/23/NHiberante-Querying-Many-To-Many-associations-using-the-Criteria-API.aspx
J'ai équipes et je Membres, il y a beaucoup à plusieurs entre les
en gros: membre -> MemberTeam < - team
Avec ma requête, j'essaie d'obtenir tous les membres qui appartiennent à une même équipe en tant que membre interrogé (y compris membre interrogé)
J'ai créé mes tables suivantes en utilisant FluentHibernate:
Code TeamMap:
Id(x => x.ID).GeneratedBy.GuidComb().UnsavedValue("00000000-0000-0000-0000-000000000000");
HasManyToMany(x => x.Members)
.Table("MemberTeam")
.ChildKeyColumn("TeamID")
.ParentKeyColumn("MemberID");
Code MemberMap:
Id(x => x.ID).GeneratedBy.GuidComb().UnsavedValue("00000000-0000-0000-0000-000000000000");
HasManyToMany(x => x.Teams)
.Table("MemberTeam")
.ChildKeyColumn("MemberID")
.ParentKeyColumn("TeamID");
Le code que je fais ma requête avec est:
DetachedCriteria dCriteria = DetachedCriteria.For(typeof(Team), "team")
.SetProjection(Projections.Id())
.Add(Property.ForName("team.ID").EqProperty("mt.ID"));
ICriteria criteria = Session.CreateCriteria(typeof (Member), "member")
.CreateAlias("Teams", "mt")
.Add(Subqueries.Exists(dCriteria))
.Add(Restrictions.Eq("mt.MemberID", new Guid(memberID)));
IList<Member> list = criteria.List<Member>();
Je sais que je fais quelque chose de mal, mais je ne peux pas comprendre ce que son
Toute aide serait appréciée
Merci beaucoup!
P.S. Ma carte semble être bien, je peux sauver des objets très bien!
Merci ... Après avoir réfléchi pendant des heures, j'ai eu la même réponse :) –