Как подключить NHibernate к MS SQL?

Рейтинг: 2Ответов: 1Опубликовано: 30.09.2014

Всем привет.
Я новичок в .Net. С помощью NHibernate пытаюсь подключиться к бд ms sql (wpf).
Мой конфиг:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" />
  </configSections>
  <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    <session-factory>
      <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
      <property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
      <property name="query.substitutions">hqlFunction=SQLFUNC</property>
      <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
      <property name="connection.connection_string">Data Source=C:\Users\Stas\Documents\Visual Studio 2013\Projects\ApplicationForDynamic\ApplicationForDynamic\ContactDb.sdf;Database=dbo.Contact;Integrated Security=True</property>
      <property name="show_sql">true</property>
      <mapping assembly="WpfApplication" />
    </session-factory>
  </hibernate-configuration>
</configuration>

Мой маппинг:

<?xml version="1.0" encoding="UTF-8"?> <hibernate-mapping namespace="WpfApplication" assembly="WpfApplication" xmlns="urn:nhibernate-mapping-2.2"> <class name="Contact"> <id name="id" column="id"> <generator class="identity"/> </id>

<property name="fio"/>    
<property name="addres"/>

</class> </hibernate-mapping>

При загрузке окна пытаюсь в бд записать данные, но ничего не происходит.

private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            configuration = new Configuration();
            configuration.Configure();
            sessionFactory = configuration.BuildSessionFactory();
            session = sessionFactory.OpenSession();

            using (session.BeginTransaction())
            {
                Contact loContact = new Contact { fio = "asd" };
                session.Save(loContact);
                session.Transaction.Commit();
            }
        }

Где я ошибся или как лучше сделать?

Ответы

▲ 1Принят

Попробуй перенести весь код из Window_Loaded на нажатие кнопки. Есть вероятность, что там у тебя исключение выкидывается где-то..