1
我對NHibernate很新,我想用這個偉大的技術開始開發。如何查詢NHibernate中的多對多關係?
下面是我的表關係的船:我已經定義了的hbm.xml模式如下
表模式
http://dl.dropbox.com/u/33698629/Entities.JPG
tblAirport
AirportID
AirportShortName
AirportFullName
AirportTel
tblGroup
GroupID
GroupName
tblAirportGroup
AirportID
GroupID
:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="TelDir.Core.Domain.Airport, TelDir.Core" table="tblAirport" lazy="false">
<id name="ID" column="AirportID" unsaved-value="0">
<generator class="identity" />
</id>
<property name="AirportShortName" column="AirportShortName" />
<property name="AirportFullName" column="AirportFullName" />
<set name="Groups" cascade="none" table="tblAirportGroup" lazy="false" access="readonly">
<key column="AirportId"/>
<many-to-many class="TelDir.Core.Domain.Group, TelDir.Core" column="GroupId"/>
</set>
</class>
</hibernate-mapping>
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="TelDir.Core.Domain.Group, TelDir.Core" table="tblGroup" lazy="false">
<id name="ID" column="GroupID" unsaved-value="0">
<generator class="identity" />
</id>
<property name="GroupName" column="GroupName" />
<bag name="Airports" cascade="none" table="tblAirportGroup" lazy="false" >
<key column="GroupID"/>
<many-to-many class="TelDir.Core.Domain.Airport, TelDir.Core" column="AirportId"/>
</bag>
</class>
</hibernate-mapping>
我的映射是否正確?我怎樣才能檢索屬於機場的Group(GroupName)列表?
我一直在使用這種語法
ISession session = NHibernateSessionManager.Instance.GetSession();
ISet<Group> rValue = session.CreateCriteria(typeof(Airport))
.CreateCriteria("Groups")
.Add(Expression.Eq("ID", ap.ID))
.List() as ISet<Group>;
,但它給我任何結果嘗試。
請問你能指導我嗎?
最好的問候,
順便說一句,我怎麼能刪除機場集團? – Veasna