NHibernate Insert Into Table

Viewed 14476

How i can insert data to table with CreateQuery()?

c# class

namespace NHibernateTutorial
{
    public class Customer
    {
        public virtual int CustomerId { get; set; }
        public virtual string FirstName { get; set; }
        public virtual string LastName { get; set; }           
    }
}

mapping xml

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
                assembly="NHibernateTutorial"
                namespace="NHibernateTutorial">
  <class name="Customer">
    <cache usage="read-write"/>
    <id name="CustomerId">
      <generator class="native" />
    </id>
    <property name="FirstName" />
    <property name="LastName" />    
  </class>
</hibernate-mapping>

My program class

    var configuartion = new Configuration();
                configuartion.DataBaseIntegration(x =>
                    {
                        x.ConnectionString = @"Data Source=NH;Initial Catalog=NHibernate;Integrated Security=False;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False";
                        x.Driver<SqlClientDriver>();
                        x.Dialect<MsSql2012Dialect>();
                        x.LogFormattedSql = true;
                        x.LogSqlInConsole = true;
                        x.AutoCommentSql = true;
                    });

                configuartion.AddAssembly(Assembly.GetExecutingAssembly());

                var sessionFactory = configuartion.BuildSessionFactory();
                using (var session = sessionFactory.OpenSession())
                { 
                 var query = session.CreateQuery("INSERT INTO Customer (FirstName, LastName) select i.FirstName, i.LastName from CustomerOld i"); 
                 query.ExecuteUpdate();
                }

In this example i copy row from another table, but i need create new row, how i can do this?

1 Answers
Related