powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / [NHibernate] Неужели баг?
6 сообщений из 6, страница 1 из 1
[NHibernate] Неужели баг?
    #37410425
SergASh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем.

Обнаружил странную вещь в NHibernate. Есть тривиальная программа.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
public class Entity
{
  public virtual long Id { get; set; }
  public virtual string Payload { get; set; }
}

class Program
{
  static void Main( string[] args )
  {
    var config = new Configuration().Configure();
    var sessionFactory = config.BuildSessionFactory();
    using ( var session = sessionFactory.OpenSession() )
    {
      var entity = new Entity { Payload = "'))" }; // Вот тут проблема.
      session.Save( entity );
    }
  }
}

Привожу здесь минимальный пример, на котором воспроизводится глюк.

Если в Payload присвоить невинную строчку типа 'Hi world', то все нормально работает. Но вот эта специфическая строка из трех символов ')) приводит к тому, что программа падает с исключением 'Index was out of range. Must be non-negative and less than the size of the collection'.
Какое дело хибернейту до того, что за символы в строке? Он что, парсит ее что ли?

Интересно, может это только у меня. Если кому не лень, попробуйте это запустить, пожалуйста.

NHibernate 2.1
Таблица
Код: plaintext
1.
2.
3.
4.
5.
create table tblEntity
(
  EntityId BIGINT NOT NULL IDENTITY PRIMARY KEY
 ,Payload VARCHAR( 10 ) NOT NULL
)
Маппинг для Entity
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
  <class name="MyNamespace.Entity, MyAssembly" 
         table="tblEntity">
    <id name="Id" column="EntityId" unsaved-value="0">
      <generator class="identity"/>      
    </id>
    <property name="Payload"/>
  </class>
</hibernate-mapping>
Настройки NH
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
  <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    <session-factory>
      <property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
      <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
      <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
      <property name="connection.connection_string_name">Main</property>
      <property name="connection.isolation">ReadCommitted</property>
      <property name="default_schema">dbo</property>
      <property name="format_sql">true</property>
      <property name="query.substitutions">true= 1 ;false= 0 </property>
      <property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>
      <!-- HBM Mapping Files -->
      <mapping assembly="MyAssembly"/>
    </session-factory>
  </hibernate-configuration>
Спасибо.
...
Рейтинг: 0 / 0
[NHibernate] Неужели баг?
    #37410632
Фотография Верблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
0. select @@version в студию
1. MSSQL->Profiler-> мониторим текст, который отправляется на сервер.
2. накатываем последний доступный сервиспак.
...
Рейтинг: 0 / 0
[NHibernate] Неужели баг?
    #37410663
SergASh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ничего никуда не отправляется, валится до того, как текст запроса сформирован если судить по логам и стектрейсу. Так что версия сервера тут не важна
...
Рейтинг: 0 / 0
[NHibernate] Неужели баг?
    #37411168
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergASh,

Покажите стек вызовов исключения.
...
Рейтинг: 0 / 0
[NHibernate] Неужели баг?
    #37411246
SergASh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нда, я опоздал на прошлогодний поезд. Таки был баг и его пофиксили бог знает когда
https://nhibernate.jira.com/browse/NH-1992
...
Рейтинг: 0 / 0
[NHibernate] Неужели баг?
    #37411430
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergASh,

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


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