powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / странная работа LINQ с хранимой процедурой
2 сообщений из 2, страница 1 из 1
странная работа LINQ с хранимой процедурой
    #36263828
bitblock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.
Я использую хранимую процедуру такого вида:
Код: plaintext
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.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
--выбирает нужные данные и сохраняит в #tmp2 
SELECT [INQUIRER_QUESTIONS].QUESTION_TEXT,
	   [INQUIRER_ANSWERS].ANSWER_TEXT,
	   [INQUIRER_ANSWERS].[COUNTER]
INTO #tmp2 
FROM [INQUIRER_QUESTIONS]
	LEFT JOIN [INQUIRER_ANSWERS]
		ON [INQUIRER_QUESTIONS].[ID_QUESTION] = [INQUIRER_ANSWERS].[ID_QUESTION]
WHERE 
[INQUIRER_QUESTIONS].[ID_INQUIRER] =  12  AND [INQUIRER_QUESTIONS].[ID_QUESTION] =  7 
AND [INQUIRER_QUESTIONS].[IS_ACTIVE] =  1  AND [INQUIRER_ANSWERS].[IS_ACTIVE] =  1 



--созданиет строку ответов вида [Ответ1], [Ответ2], [Ответ3],... [ОтветN]
DECLARE @strAnswers varchar(max)
DECLARE @ANSWER_TEXT varchar( 100 )
SET @strAnswers = ''
DECLARE answers_select CURSOR  FOR
	SELECT ANSWER_TEXT FROM #tmp2
	OPEN answers_select
		FETCH NEXT FROM answers_select
		INTO @ANSWER_TEXT
		WHILE (@@FETCH_STATUS <> - 1 )
		BEGIN
			SET @strAnswers = @strAnswers + '['+ @ANSWER_TEXT +'],'
			FETCH NEXT FROM answers_select
			INTO @ANSWER_TEXT
		END
	CLOSE answers_select;
DEALLOCATE answers_select;

SET @strAnswers = SUBSTRING(@strAnswers,  0 , Len(@strAnswers))

--разворачивает таблицу
DECLARE @sqlCommand varchar(max)
DECLARE @str varchar(max)
EXECUTE ('SELECT * FROM #tmp2 PIVOT ( Sum([COUNTER]) FOR [Answer_TEXT] IN ('+ @strAnswers +')) AS p')
DROP TABLE #tmp2

т.е. она делает PIVOT по некоторым данным из временной таблицы. процедура работает и при выполнении запроса в sql сервере я вижу нужную мне выборку.

затем пытаюсь вызвать эту процедуру с помощью LINQ
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
public static List<qm_Inquirer_SelectStatisticForSingleQuestionResult> SelectStatisticForSingleQuestion(int InquirerID, int QuestionID)
        {
            List<qm_Inquirer_SelectStatisticForSingleQuestionResult> t;
            using (DataAccessDataContext db = new DataAccessDataContext())
            {
                t = db.qm_Inquirer_SelectStatisticForSingleQuestion(InquirerID, QuestionID).ToList();
            }
            return t;
        }
здесь получаю ошибку. .NET говорит что нельзя преобразовать int к List<qm_Inquirer_SelectStatisticForSingleQuestionResult>
посмотрел в дизайнере.
выглядит действительно так:
Код: plaintext
1.
2.
3.
4.
5.
public int qm_Inquirer_SelectStatisticForSingleQuestion([Parameter(Name="ID_INQUIRER", DbType="Int")] System.Nullable<int> iD_INQUIRER, [Parameter(Name="ID_QUESTION", DbType="Int")] System.Nullable<int> iD_QUESTION)
		{
			IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), iD_INQUIRER, iD_QUESTION);
			return ((int)(result.ReturnValue));
		}

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


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