<?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(); }