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