powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / В EF6 неправильно генерируется SQL-выражение для хранимой процедуры
1 сообщений из 1, страница 1 из 1
В EF6 неправильно генерируется SQL-выражение для хранимой процедуры
    #39353845
vrastrigin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Изначально я писал в другую ветку , мне ответили, что проблема не в firebird ( 19930214 ), а скорее всего в провайдере. Но где её искать?

Когда я пробую запустить простую процедуру с помощью EntityFramework,
я получаю следующую ошибку:
"FirebirdSql.Data.FirebirdClient.FbException: Dynamic SQL Error SQL error code = -204 Implementation limit exceeded ..."
Я предполагаю, что проблема в неправильной генерации SQL-выражения Entity Framework'ом.
Текст процедуры (Firebrd) :
Код: sql
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.
procedure B_IMP_I_REESTR ( 
    IDUSER integer, 
    IMPMODE integer, 
    IDGEN integer, 
    IDPARENT integer, 
    IDTCH integer, 
    NOMER varchar(15), 
    SBORNIK integer, 
    NAME varchar(250), 
    VIX_DAN blob sub_type 0 segment size 80, 
    ISSYSTEM integer, 
    POKAZ varchar(8), 
    GOD integer, 
    RABMAT integer, 
    IDGROUP integer, 
    IDPODGROUP integer, 
    IDTYPE integer, 
    ORDERVIEW integer, 
    CREATEDATE date, 
    AUTHOR varchar(250), 
    NORM_GUID varchar(100), 
    INSTALL_GUID varchar(100), 
    INDEX_YEAR integer, 
    INDEX_MONTH integer, 
    INDEX_ORGNAME varchar(250), 
    INDTYPE varchar(50)) 
returns ( 
    ID integer) 



Текст процедуры (то, что сгенерировал Entity Framework) :
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT 1 AS "C1", "A"."ID" AS "ID" 
FROM "B_IMP_I_REESTR"(CAST(@IDUSER AS INT), CAST(@IMPMODE AS INT), CAST(@IDGEN AS INT), 
CAST(@IDPARENT AS INT), CAST(@IDTCH AS INT), CAST(@NOMER AS VARCHAR(8191)), 
CAST(@SBORNIK AS INT), CAST(@NAME AS VARCHAR(8191)), CAST(@VIX_DAN AS BLOB SUB_TYPE BINARY), 
CAST(@ISSYSTEM AS INT), CAST(@POKAZ AS VARCHAR(8191)), CAST(@GOD AS INT), 
CAST(@RABMAT AS INT), CAST(@IDGROUP AS INT), CAST(@IDPODGROUP AS INT), 
CAST(@IDTYPE AS INT), CAST(@ORDERVIEW AS INT), CAST(@CREATEDATE AS TIMESTAMP), 
CAST(@AUTHOR AS VARCHAR(8191)), CAST(@NORM_GUID AS VARCHAR(8191)), CAST(@INSTALL_GUID AS VARCHAR(8191)), 
CAST(@INDEX_YEAR AS INT), CAST(@INDEX_MONTH AS INT), CAST(@INDEX_ORGNAME AS VARCHAR(8191)), 
CAST(@INDTYPE AS VARCHAR(8191))) 
AS "A" 



Например, почему-то:
Код: sql
1.
INDTYPE varchar(50) -> CAST(@INDTYPE AS VARCHAR(8191))

???

Я использую следующие версии :
Visual Studio 2013

Firebird 2.5 (Win32)

EntityFramework 6.1.3

FirebirdClient, DDEX-provider - 5.6.0

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


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