powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF использование аналитических функций MS SQL
8 сообщений из 8, страница 1 из 1
EF использование аналитических функций MS SQL
    #39237458
NIIIK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно ли использовать

percentile_disc

а стороне Entity Framework ?
...
Рейтинг: 0 / 0
EF использование аналитических функций MS SQL
    #39238325
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
EF использование аналитических функций MS SQL
    #39238346
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch, т.е. ни как?
...
Рейтинг: 0 / 0
EF использование аналитических функций MS SQL
    #39238347
NIIIK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин,
вот зайдёшь на русский форум, задашь вопрос по русски... а не стековерлоу...

Вот вчера я пытался по этим ссылкам замутить
http://stackoverflow.com/questions/24161005/error-6046-unable-to-generate-function-import-return-type-of-the-store-function

https://social.msdn.microsoft.com/Forums/ru-RU/90cb6083-d14c-4dba-bc60-e3dcacb2fb40/unable-to-generate-function-import-for-a-simple-function?forum=adodotnetentityframework

тут кстати хорошая фраза

Um, this is ridiculous. It has been almost 1 year since this thread. Even worse, I took a break from EF 3 years ago because of limitations like this and now I come back to see that you STILL cannot use scalar UDF's in EF. Am I missing something?

var q = from item in context.Items select new { Id = item.Id, Something = ufn_MyFunction(item.Id) };

I am now prototyping a new application and find that I STILL cannot do this years later. What is going on?



Но у меня ничерта не получалось в моём случае и непонятная ошибка с типами данных была.

Проще стало написать "хранимку-обёртку".

А потом всё же решил тупо табличную функцию сделать, она кстати хорошо прокатила (ну и outer apply её), в ЭФ с этим гораздо удобнее работать и без лишних танцев с бубном.

Ксати,
[EdmFunction("SchoolModel.Store", "AvgStudentGrade")]
public static decimal? AvgStudentGrade(int studentId)
{
throw new NotSupportedException("Direct calls are not supported.");
}


как я понимаю не даст так красиво использовать в примере

var students = from s in context.People
where s.EnrollmentDate != null
select new
{
name = s.LastName,
avgGrade = AvgStudentGrade(s.PersonID)
};


?
...
Рейтинг: 0 / 0
EF использование аналитических функций MS SQL
    #39238354
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NIIIK, с оконными функциями не так просто. Ни как?
...
Рейтинг: 0 / 0
EF использование аналитических функций MS SQL
    #39238361
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NIIIK,

Как вариант по этому примеру написать функцию, которая по заданным параметрам будет вызывать percentile_disc и выдавать 1 число в виде результата.

Если нужно сразу для всех, то, имхо, прощу написать хранимку, которая будет выполнять весь запрос сразу
...
Рейтинг: 0 / 0
EF использование аналитических функций MS SQL
    #39238373
NIIIK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buser,

Ну напрямую я не нашёл как, не шарю, пришлось обычную УДФ писать, потом другая шляпа, потом в итогде табличную инлайн функцию смог написать (зато вывел и медианное значение от percentile_disc и какое количество туда попало).

В самом линке можно ли её вызывать до сих пор не шарю.
...
Рейтинг: 0 / 0
EF использование аналитических функций MS SQL
    #39238382
NIIIK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchNIIIK,

Как вариант по этому примеру написать функцию, которая по заданным параметрам будет вызывать percentile_disc и выдавать 1 число в виде результата.

Если нужно сразу для всех, то, имхо, прощу написать хранимку, которая будет выполнять весь запрос сразу

Мапить её и сложно и НЕ получилось.

В итоге табличная функция.

Хотя сначала была хранимка,
т. е.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
ALTER procedure [dbo].[spSpaceGetForecastRate]
(
 @SizeTypeId uniqueidentifier,
 @ZipCode nvarchar(10),
 @ForecastedRate money = null output
)
as
begin

 select @ForecastedRate = dbo.fnSpaceForecastRate(@SizeTypeId, z.Id)
   from dbo.Zip z with(nolock)
 where z.Zip = @ZipCode

end



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


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