powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / NHibernate не обновляет, не удаляет данные и молчит как рыба
5 сообщений из 5, страница 1 из 1
NHibernate не обновляет, не удаляет данные и молчит как рыба
    #36805944
aleksend
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем. Я в FluentNHibernate начинающий, возникла такая проблема: не могу с помощью NHibernate обновить либо удалить запись в таблице базы (СУБД Sql Server 2005). При этом вывод данных из таблицы и добавление новой записи проходят успешно. В чем ошибка?

Вот так вывожу:

Код: plaintext
1.
IList<Vacancy> VList =
                Global.CurrentSession.CreateCriteria(typeof(Vacancy)).List<Vacancy>();

Вот так добавляю:

var EditVac = new Vacancy();

Код: plaintext
Global.CurrentSession.SaveOrUpdate(EditVac);

А вот так обновить не получается:

Код: plaintext
1.
2.
var EditVac = Global.CurrentSession.Get<Vacancy>(id);//Get работает нормально, объект из базы вынимает, тут не придерешься
EditVac.Name = tbxVacancyName.Text;
Global.CurrentSession.SaveOrUpdate(EditVac);//эффект нулевой...

И удалить тоже не получается:

Код: plaintext
1.
var DelVac = Global.CurrentSession.Get<Vacancy>(id);//здесь все нормально
                    Global.CurrentSession.Delete(DelVac);//а здесь опять ноль эффекта, и молчим как рыба

При всем этом безобразии сам NHibernate молчит как рыба, ни эксепшенов, ничего. Прошу помочь.

Маппинги на всякий случай (класс Vacancy ссылается на два других класса, и в базе такая же схема):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
    public class PeriodMap : ClassMap<Period>
    {
        public PeriodMap()
        {
            Id(x => x.Id);
            Map(x => x.Name);

        }
    }

    public class CurrencyMap : ClassMap<Currency>
    {
        public CurrencyMap()
        {
            Id(x => x.Id);
            Map(x => x.Name);
        }

    }


    public class VacancyMap : ClassMap<Vacancy>
    {
        public VacancyMap()
        {
            Id(x => x.Id);
            Map(x => x.Name);
            Map(x => x.Duties);
            Map(x => x.CompensationMin);
            Map(x => x.CompensationMax);
            Map(x => x.DateTime);
            References(x => x.Currency);
            References(x => x.Period);
        }
    }
...
Рейтинг: 0 / 0
NHibernate не обновляет, не удаляет данные и молчит как рыба
    #36806610
aleksend
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема решена,
...
Рейтинг: 0 / 0
NHibernate не обновляет, не удаляет данные и молчит как рыба
    #36807193
sibkit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleksend,

Вообще так не красиво поступать. Решил проблему - опиши решение. Но как я вижу, тут проблема в незнании. Думаю всё решение в session.Flush();
...
Рейтинг: 0 / 0
NHibernate не обновляет, не удаляет данные и молчит как рыба
    #36807653
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запихивать сессию в статическое поле - плохая идея. Это своей природе короткоживущий объект, который надо освобождать как можно быстрее.
...
Рейтинг: 0 / 0
NHibernate не обновляет, не удаляет данные и молчит как рыба
    #36808173
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolYUtorЗапихивать сессию в статическое поле - плохая идея. Это своей природе короткоживущий объект, который надо освобождать как можно быстрее.
+1
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / NHibernate не обновляет, не удаляет данные и молчит как рыба
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]