Bevor Sie das ich auf allen relevanten Beiträge zu diesem Thema ausgesehen habennHibernate Many-to-Many-Abfrage mit Kriterien API
ich auch dieses Blog-Post gelesen haben: http://ayende.com/Blog/archive/2007/12/23/NHiberante-Querying-Many-To-Many-associations-using-the-Criteria-API.aspx
Ich habe Teams und ich Mitglieder haben, gibt es viele-zu-viele-Beziehung zwischen ihnen
Grundsätzlich gilt: Mitglied -> MemberTeam < - Team
Mit meiner Abfrage ich versuche, alle Mitglieder zu erhalten, die als abgefragten Mitglied zu demselben Team gehören (einschließlich abgefragt Mitglied)
Ich habe meine Tabellen Die folgenden FluentHibernate erstellt:
TeamMap Code:
Id(x => x.ID).GeneratedBy.GuidComb().UnsavedValue("00000000-0000-0000-0000-000000000000");
HasManyToMany(x => x.Members)
.Table("MemberTeam")
.ChildKeyColumn("TeamID")
.ParentKeyColumn("MemberID");
Membermap Code:
Id(x => x.ID).GeneratedBy.GuidComb().UnsavedValue("00000000-0000-0000-0000-000000000000");
HasManyToMany(x => x.Teams)
.Table("MemberTeam")
.ChildKeyColumn("MemberID")
.ParentKeyColumn("TeamID");
Der Code, den ich mit meiner Anfrage zu tun ist:
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>();
Ich weiß, dass ich etwas falsch mache, aber ich kann nicht verstehen, was es seine
Jede Hilfe Sie würde geschätzt
vielen Dank!
P.S. Meine Karte scheint gut zu sein, ich kann Objekte gut speichern!
Danke ... Nachdem ich stundenlang nachgedacht hatte, bekam ich die gleiche Antwort :) –