<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="TstDBConnection.Entities" assembly="TstDBConnection">
<class name="Cup" table="Cup">
<id name="Id" column="Id">
<generator class="guid.comb"/>
</id>
<property name="Name" column="Name"></property>
</class>
</hibernate-mapping>
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="TstDBConnection.Entities" assembly="TstDBConnection">
<class name="CupBox" table="CupBox">
<id name="Id" column="Id">
<generator class="guid.comb"/>
</id>
<property name="Name" column="Name"></property>
<set name="Cups" lazy="true" fetch="join" cascade="all-delete-orphan">
<key column="CupBoxId"/> <!--Cup table column-->
<one-to-many class="Cup"/> <!--it stands for get related info from cup.hbm.xml-->
</set>
</class>
</hibernate-mapping>
namespace TstDBConnection.Entities
{
public class CupBox
{
public virtual Guid Id { get; set; }
public virtual string Name { get; set; }
public virtual Iesi.Collections.Generic.ISet<Cup> Cups { get; set; }
}
}
namespace TstDBConnection.Entities
{
public class Cup
{
public virtual Guid Id { get; set; }
public virtual string Name { get; set; }
}
}
public static void TestOne2Many(ISessionFactory sessionFactory)
{
using (ISession session = sessionFactory.OpenSession())
{
Cup cup = new Cup() { Name = "Coffee Cup" };
CupBox cupbox = new CupBox()
{
Cups = new Iesi.Collections.Generic.HashedSet<Cup>() { cup },
Name = "Coffee CupBox"
};
var id = session.Save(cupbox);
session.Flush();
var query = from leafT in session.Query<CupBox>() select leafT;
IList<CupBox> employees = query.ToList();
CupBox cb = employees[0];
List<Cup> cups = cb.Cups.ToList<Cup>();
}
}
static void Main(string[] args)
{
log4net.Config.XmlConfigurator.Configure(); // log4net
Configuration configuration = new Configuration();
configuration.Configure();
ISessionFactory sessionFactory = configuration.BuildSessionFactory();
TestOne2Many(sessionFactory);
sessionFactory.Close();
}
![](data:image/png;base64,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)