Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / NHibernate не обновляет, не удаляет данные и молчит как рыба / 5 сообщений из 5, страница 1 из 1
23.08.2010, 12:19
    #36805944
aleksend
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate не обновляет, не удаляет данные и молчит как рыба
Привет всем. Я в 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
23.08.2010, 17:31
    #36806610
aleksend
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate не обновляет, не удаляет данные и молчит как рыба
Проблема решена,
...
Рейтинг: 0 / 0
24.08.2010, 06:35
    #36807193
sibkit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate не обновляет, не удаляет данные и молчит как рыба
aleksend,

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


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