<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="TstDBConnection.Entities"
assembly="TstDBConnection">
<class name="Staff" table="Staff">
<id name="Id" column="Id">
<generator class="guid.comb"/>
</id>
<property name="Title" column="Title"></property>
<component name="Name" class="Name">
<property name="FirstName" column="FirstName"></property>
<property name="LastName" column="LastName"></property>
</component>
</class>
</hibernate-mapping>
namespace TstDBConnection.Entities
{
public class Name
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
}
namespace TstDBConnection.Entities
{
public class Staff
{
public virtual Guid Id { get; set; }
public virtual Name Name { get; set; }
public virtual string Title { get; set; }
}
}
public static void TestComponentMapping(ISessionFactory sessionFactory)
{
using (ISession session = sessionFactory.OpenSession())
{
Name name = new Name() { FirstName = "John", LastName = "Doe" };
Staff emp = new Staff() { Name = name, Title = "System Developer" };
session.Save(emp);
session.Flush();
var query = from employee in session.Query<Staff>() select employee;
IList<Staff> employees = query.ToList();
}
}
static void Main(string[] args)
{
log4net.Config.XmlConfigurator.Configure(); // log4net
Configuration configuration = new Configuration();
configuration.Configure();
ISessionFactory sessionFactory = configuration.BuildSessionFactory();
TestComponentMapping(sessionFactory);
sessionFactory.Close();
}