Действительно ли возможно использовать/получать доступ скалярные функции с LINQ к SQL?

Куча распределяется между всеми потоками (хотя распределители, такие как TCMalloc , используют специфичные для потока подмножества кучи для кратковременных распределений для эффективности). Однако bad_array_new_length не об исчерпании памяти: речь идет о невероятно больших или отрицательных запросах на выделение.

7
задан mattruma 11 November 2008 в 15:28
поделиться

2 ответа

LINQ к поддержке SQL используют с UDFs, если, именно это Вы имеете в виду. Просто перетащите UDF на поверхность разработчика, и Вы сделаны. Это создает метод сопоставления для контекста данных, отмеченного [Function(..., IsComposable=true)] или подобный, говорящий LINQ-SQL, что это может использовать это в запросах (отмечают, что EF не поддерживает это использование).

Вы затем использовали бы его в своем запросе как:

var qry = from cust in ctx.Custs
           select new {Id = cust.Id, Value = ctx.GetTotalValue(cust.Id)};

который станет TSQL что-то как:

SELECT t1.Id, dbo.MyUdf(t1.Id)
FROM CUSTOMER t1

(или поблизости).

То, что это компонуемо, означает, что можно использовать значение в запросах - например, в a Where()/WHERE - и тем самым уменьшите данные, возвращенные из сервера (хотя, очевидно, UDF должен будет все еще быть выполнен в некотором роде).

Вот подобный пример, показывая pseudo-UDF при использовании на контексте данных, иллюстрируя, что версия C# метода не используется.

На самом деле я в настоящее время смотрю на такой UDFs для обеспечения "из модели" данных компонуемым способом - т.е. конкретной части системы нужен доступ к некоторым данным (который, оказывается, находится в той же базе данных), который не является действительно частью той же модели, но который я хочу JOIN интересными способами. У меня также есть существующий SPS с этой целью..., таким образом, я смотрю на портирование их SPS к табличному UDFs, который обеспечивает уровень контракта/абстракции, окружающего данные из модели. Таким образом, потому что это не часть моей модели, я могу только получить его через UDF - все же я сохраняю способность составить это с моей обычной моделью.

10
ответ дан 6 December 2019 в 23:15
поделиться

Я полагаю, что эта документация MSDN - то, что Вы после (как часть этой более широкой темы вызывания пользовательских функций в LINQ к SQL). Не может сказать, что я сделал это сам, но это звучит правильным...

1
ответ дан 6 December 2019 в 23:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: