powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / ICriteria инициирует update
8 сообщений из 8, страница 1 из 1
ICriteria инициирует update
    #37585888
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
ICriteria crit = session.CreateCriteria(p.GetType());
crit.Add(Expression.Eq("Name", p.Name)).
Add(Expression.Not(Expression.Eq("Id", p.Id)));

if (crit.List().Count > 0) //и тут падаем с ексепшн, так как вызывается update, который нарушает UK в БД
...



вроде как ICriteria - это селект?
...
Рейтинг: 0 / 0
ICriteria инициирует update
    #37585892
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
причем ни

Код: c#
1.
session.SaveOrUpdate(p);



ни

Код: c#
1.
transaction.Commit();



не вызывается - код проверил. Что я упустил?

спасибо
...
Рейтинг: 0 / 0
ICriteria инициирует update
    #37585969
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmaw,

Этот определённо не тот код, который вызывает update. Проблема где-то в другом месте.
...
Рейтинг: 0 / 0
ICriteria инициирует update
    #37587695
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolYUtorkmaw,

Этот определённо не тот код, который вызывает update. Проблема где-то в другом месте.

на одном компе (XP SP3, Oracle Client 9i) все равно вызывается update,
на другом (w7, Oracle Client 11g) все работает нормально
...
Рейтинг: 0 / 0
ICriteria инициирует update
    #37587698
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в смысле я всего на двух компах тестил, а не на многих с перечисленными характеристиками
...
Рейтинг: 0 / 0
ICriteria инициирует update
    #37587719
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmaw,

попробуем включить телепатию. У вас nullable поля в бд соответствуют маппингам? Может это ваш случай ?
...
Рейтинг: 0 / 0
ICriteria инициирует update
    #37588265
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolYUtor,

с разными компами я прогнал.

но проблему, кажется, решил. я подумал:
1. с чего ради "в принципе" перед select может выполняться update?
2. как вариант, типа "поведение по-умолчанию", чтобы согласовать грязные данные на клиенте с БД

сделал
Код: c#
1.
session.Clear(); 




правильно ли?
...
Рейтинг: 0 / 0
ICriteria инициирует update
    #37588323
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawправильно ли?
It depends...

ICriteria может вызывать update, т.к. NHibernate будет пытаться синхронизировать состояние объектов с бд, если изменения объектов в сессии могут оказать влияние на результаты запроса. Поэтому возможно в вашем случае session.Clear() и можно использовать, но мне сложно об этом судить не зная контекста. Но я бы попробовал пересмотреть принципа работы с ISession.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / ICriteria инициирует update
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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