<?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();
}
![](data:image/png;base64,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)