беглые данные nhibernate не сохраняются - PullRequest
1 голос
/ 27 марта 2012

Вот помощник;

public class NHibernateHelper
{
    private static ISessionFactory _sessionFactory;

    private static ISessionFactory SessionFactory
    {
        get
        { 
            if (_sessionFactory == null)
            {
                InitSessionFactory();
                return _sessionFactory;
            }
        }

    private static void InitSessionFactory()
    {
        _sessionFactory =
            Fluently.Configure().Database(
                MsSqlConfiguration.MsSql2008.ConnectionString(
                    "ConnectionString").ShowSql).
                Mappings(m => m.FluentMappings.AddFromAssemblyOf<Category>()).ExposeConfiguration(
                    cfg => new SchemaExport(cfg).Create(true, true)).BuildSessionFactory();
    }

    public static ISession OpenSession()
    {
        return SessionFactory.OpenSession();
    }
}

Ниже приведен код для хранения данных:

using(var session = NHibernateHelper.OpenSession())
{
    using (var tx = session.BeginTransaction())
    { 
        session.Save(category);
        tx.Commit();
    }
}

Моя проблема в том, что когда я запускаю этот код и обновляю базу данных, я вижу, что данные проходят.

Когда я перезапускаю приложение, данные исчезают.

Как мне сохранить данные в БД?

1 Ответ

1 голос
/ 27 марта 2012

Похоже, что вы постоянно воссоздаете файл базы данных:

SchemaExport(cfg).Create(

Как спросили и решили здесь:

Как настроить FluentNHibernate, чтобы он не перезаписывал существующий файл базы данных SQLite?

Таким образом, он сохраняется в сеансе приложения, но после перезапуска приложения (или, точнее, повторного вызова SchemaExport) файл базы данных воссоздается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...