powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / dapper.net + table valued function (t-sql)
5 сообщений из 5, страница 1 из 1
dapper.net + table valued function (t-sql)
    #39082685
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет. Подскажите пожалуйста, как с помощью Dapper запросить результат у функции, которая возвращает таблицу.


Код процедуры:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
ALTER FUNCTION [Gr].[spGetUser]()
RETURNS @UserTab TABLE
   (
    Id		int,
    Title	nvarchar(max)
   )
AS
BEGIN
   INSERT @UserTab
		select 1, 'Title'
   RETURN
END




Вот так сейчас работает:
Код: c#
1.
var res = await conn.QueryAsync<User>("select * from [Gr].[spGetUser] ()", new {}).ConfigureAwait(false);



А вот так нет:
Код: c#
1.
var res = conn.QueryAsync<User>("[Gr].[spGetUser]", new { }, commandType: CommandType.StoredProcedure).ConfigureAwait(false);



Генерит такую ошибку:
Код: xml
1.
The request for procedure 'spGetUser' failed because 'spGetUser' is a table valued function object.




И еще вопрос. Немного смущает вот эта часть "new {}". Т.е. Dapper хочут получить какой-то анонимный объект где будут параметры. Однако у данной процедуры нету параметров.
...
Рейтинг: 0 / 0
dapper.net + table valued function (t-sql)
    #39082699
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekПривет. Подскажите пожалуйста, как с помощью Dapper запросить результат у функции, которая возвращает таблицу.
Вот так:ProBiotekВот так сейчас работает:
Код: c#
1.
var res = await conn.QueryAsync<User>("select * from [Gr].[spGetUser] ()", new {}).ConfigureAwait(false);


ProBiotekНемного смущает вот эта часть "new {}"
Смущает - не указывайте.
...
Рейтинг: 0 / 0
dapper.net + table valued function (t-sql)
    #39082704
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны,

Ну т.е. через селект ?

Просто на страницы Dapper'а я нашел пример как вызывать Процедуры. Но с Функциями это не прокатило.
Вот и возник вопрос.

Вы хотите сказать, что для Процедур у Dapper'а есть решение, а для функций нет ?
...
Рейтинг: 0 / 0
dapper.net + table valued function (t-sql)
    #39082775
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekВы хотите сказать, что для Процедур у Dapper'а есть решение, а для функций нет ?
Даппер внутри себя обращается к базе не каким-то свои собственным образом, а через всё тот же ADO.Net, и правила обращения там точно такие же. При задании CommandType.StoredProcedure ADO.Net посылает на сервер вызов заданной хранимой процедуры через exec/sp_executesql - попробуйте через них в SSMS вызвать вашу функцию, задав только её имя, и посмотрите, что вам скажет сервер. TFV - объект, возвращающий выборку, причем только с одним набором данных (а ХП может вернуть несколько), для TVF можно указать список выбираемых полей, а для ХП - нельзя, TVF может участвовать в джойнах и иметь предикаты, а ХП - нет. Это не говоря уже о том, что инлайновая TVF - текст запроса, завернутый в функцию, и может быть заинлайнен в более общий запрос. И поэтому обращение к TVF - через select.
...
Рейтинг: 0 / 0
dapper.net + table valued function (t-sql)
    #39083177
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны,

ну ок )
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / dapper.net + table valued function (t-sql)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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