component example - 3.5 of 4

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

        }

你可能感兴趣的:(component)