Antes de pedir He mirado todos los mensajes pertinentes sobre este temaNHibernate muchos-a-muchos consulta utilizando los criterios del API
también he leído esta entrada del blog: http://ayende.com/Blog/archive/2007/12/23/NHiberante-Querying-Many-To-Many-associations-using-the-Criteria-API.aspx
tengo Equipos y tengo Miembros, hay muchos-a-muchos entre ellos
Básicamente: miembro -> MemberTeam < - equipo
con mi consulta que intenta llegar a todos los miembros que pertenecen al mismo equipo que los miembros preguntó (incluyendo los miembros preguntó)
he creado mis tablas usando FluentHibernate siguiente:
código TeamMap: Código
Id(x => x.ID).GeneratedBy.GuidComb().UnsavedValue("00000000-0000-0000-0000-000000000000");
HasManyToMany(x => x.Members)
.Table("MemberTeam")
.ChildKeyColumn("TeamID")
.ParentKeyColumn("MemberID");
MemberMap:
Id(x => x.ID).GeneratedBy.GuidComb().UnsavedValue("00000000-0000-0000-0000-000000000000");
HasManyToMany(x => x.Teams)
.Table("MemberTeam")
.ChildKeyColumn("MemberID")
.ParentKeyColumn("TeamID");
El código hago mi consulta con es:
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>();
sé que estoy haciendo algo mal, pero no puedo entender lo que su
Cualquier ayuda se agradece
Gracias mucho!
P.S. Mi mapa parece estar bien, puedo guardar objetos muy bien!
Gracias ... Después de pensar durante horas, llegué a la misma respuesta :) –