Member 11579922 Ответов: 0

Nhibernate неверный размер параметра в запросе для yesnotype


У нас есть символ(1) в базе данных. Соответствующее поле является логическим в коде приложения и сопоставляется с YesNoType. Отображение выполняется с помощью кода. Запрос NHibernate генерирует параметр char(8000), который содержит либо 'Y', либо 'N'. Это приводит к следующей ошибке:

Создание или изменение таблицы "FakeWorkTable" не удалось, поскольку минимальный размер строки будет равен 16017, включая 4 байта внутренних накладных расходов. Это превышает максимально допустимый размер строки таблицы в 8094 байта.

Мы используем nHibernate LINQ для запросов.

Есть ли какой-нибудь способ явно указать длину и тип параметра? Быстрая помощь и предложение будут действительно оценены. nHibernate jira обсуждают ту же проблему, но не предоставили никакого решения/обходного пути для того же самого.

NHibernate генерирует запрос, полученный из SQL Profiler:

    SELECT this_.AlertID as AlertID1_0_, 
this_.RV as RV1_0_, 
this_.CaseID as CaseID1_0_, 
this_.Description as Descript4_1_0_,
this_.GeneratedByObjectID as Generate5_1_0_, 
this_.GeneratedByObjectTypeID as Generate6_1_0_,
this_.RelatedObjectTypeID as RelatedO7_1_0_, 
this_.RelatedObjectID as RelatedO8_1_0_, 
this_.IsClosed as IsClosed1_0_, 
this_.CreatedDate as Created10_1_0_,
this_.ClosedDate as ClosedDate1_0_, 
this_.CloseComments as CloseCo12_1_0_,
this_.CreatedByUserID as Created13_1_0_, 
this_.ClosedByUserID as ClosedB14_1_0_, 
this_.ClosureReasonID as Closure15_1_0_ FROM trans.Alert this_ WHERE 
this_.GeneratedByObjectTypeID = @p0 and this_.GeneratedByObjectID = @p1 and 
not (this_.IsClosed = @p2)
Name:@p0 - Value:1 Name:@p1 - Value:1775549 Name:@p2 - Value:'Y'

N'@p2 char(8000)',N'@p1 int', N'@p0 int'  


Что я уже пробовал:

Переход от LINQ к HQL и явное указание длины.

0 Ответов