<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="TstDBConnection.Entities" assembly="TstDBConnection">
<class name="Tree" table="Tree">
<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="Leaf" table="Leaf">
<id name="Id" column="Id">
<generator class="guid.comb"/>
</id>
<property name="Name" column="Name"></property>
<many-to-one name="Tree" class="Tree" column="TreeId" cascade="save-update" />
</class>
</hibernate-mapping>
namespace TstDBConnection.Entities
{
public class Tree
{
public virtual Guid Id { get; set; }
public virtual string Name { get; set; }
}
}
namespace TstDBConnection.Entities
{
public class Leaf
{
public virtual Guid Id { get; set; }
public virtual string Name { get; set; }
public virtual Tree Tree { get; set; }
}
}
public static void TestMany2One(ISessionFactory sessionFactory)
{
using (ISession session = sessionFactory.OpenSession())
{
Tree tree = new Tree() { Name = "Big Tree" };
Leaf leaf = new Leaf() { Tree = tree, Name = "Leaf A for Big Tree" };
session.Save(leaf);
session.Flush();
var query = from leafT in session.Query<Leaf>() select leafT;
IList<Leaf> employees = query.ToList();
}
}
static void Main(string[] args)
{
log4net.Config.XmlConfigurator.Configure(); // log4net
Configuration configuration = new Configuration();
configuration.Configure();
ISessionFactory sessionFactory = configuration.BuildSessionFactory();
TestMany2One(sessionFactory);
sessionFactory.Close();
}