![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 09.11.2008
Сообщений: 27
|
![]()
Приветствую!
Заметил странное для меня поведение в nHibernate. Формирую критерию для выполнения запроса. Запрос простой - получить из таблицы записи с Id из списка. Пользуюсь Restrictions.In"/"Restrictions.InG". Само поле Id у меня имеет тип string (в базе varchar(36)), в нем хранится Guid. Создаю критерию следующим образом: Код:
Код:
Код:
Код:
Причем если делать обычный условие Equals, то преобразований (cast-oв) нет: Код:
Код:
Заранее спасибо! Последний раз редактировалось Stilet; 28.12.2015 в 17:58. |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
![]()
выбросить nHibernate как отживший свое время
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 09.11.2008
Сообщений: 27
|
![]()
Хорошо :-)
А есть варианты с nHibernate? Просто вся система уже настроена через этот фреймворк |
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
![]()
Так проблема то в чем? ну конвертит и конвертит, ну и что?
работает же |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 09.11.2008
Сообщений: 27
|
![]()
Вытекают 2 проблемы/неудобства:
1) увеличивается скорость работы (для каждого элемента пусть и тратится совсем немного времени на его cast, но если элементов много, более 1000, то это уже заметно); 2) cast в varchar(255) при необходимости только в 36 символах удлиняет саму итоговую SQL строку запроса. Пороговое количество элементов, которые можно уместить в одном запросе, уменьшается. Придется дробить на несколько подзапросов и т.п. Мне сейчас именно поведение непонятно и, как следствие, вопрос - как можно на это повлиять? |
![]() |
![]() |
![]() |
#6 | |
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 09.11.2008
Сообщений: 27
|
![]()
Да, к сожалению и моему пока непониманию - да, для каждого элемента из списка, который я подставляю в
Код:
Последний раз редактировалось Stilet; 28.12.2015 в 17:58. |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
и что же сейчас современно по вашему?
ТС, а почему не взят нормальный GUID тип? а так вам стоит к ним идти и писать об этом, слишком узкое все же. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 09.11.2008
Сообщений: 27
|
![]()
База FireBird, по умолчанию нет такого поля :-(
|
![]() |
![]() |
![]() |
#10 | ||
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
![]() Цитата:
Цитата:
|
||
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
xml-mapping NHibernate | Лета | Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) | 7 | 13.03.2014 11:23 |
Подключение к Interbase через NHibernate | Axilees | Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) | 1 | 15.03.2012 08:09 |
Nhibernate | nats | Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) | 1 | 01.04.2011 11:10 |
String большого размера, более 255 String[255] | bitSoft | Общие вопросы Delphi | 9 | 28.03.2010 19:45 |
Как изменить в InterBase размер поля varchar(10) на varchar(20) | tarakan1983 | БД в Delphi | 4 | 23.03.2009 15:35 |