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