5
问我看过所有相关的帖子就这个话题NHibernate的许多一对多使用标准API
我也看过这篇博客之前查询:http://ayende.com/Blog/archive/2007/12/23/NHiberante-Querying-Many-To-Many-associations-using-the-Criteria-API.aspx
我的团队和我有会员,有不少一对多它们之间的关系
基本上是:会员 - > MemberTeam < - 团队
随着我的查询我试图让属于同一队的成员查询所有成员(包括查询会员)
我创建使用的关注FluentHibernate我的表:
TeamMap代码:
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");
我做我的查询的代码是:
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>();
我知道我做错了什么,但我不明白它的
任何帮助,将不胜感激
非常感谢你!
P.S.我的地图接缝很好,我可以节省物体!
谢谢你...想了几个小时后,我得到了同样的答案:) – 2010-02-16 11:40:16