Статья описывает трансляцию кода TypeScript в OData запросы во время компиляции программы.
Плагин babel-plugin-ts2odata выполняет разбор JavaScript AST с помощью библиотеки TsToOdata описание которой в моей предыдущей статье Типизированные запросы OData в TypeScript.
Рубрика «linq» - 2
OData babel плагин
2020-04-19 в 15:32, admin, рубрики: babel plugin, fluent, javascript, linq, odata, TypeScriptТипизированные запросы OData в TypeScript
2020-02-22 в 20:04, admin, рубрики: .net, fluent, linq, odata, TypeScript
Традиционно запросы OData к данным выражаются в виде простых строк без проверки типов при компиляции или без поддержки IntelliSense, кроме того, разработчику приходится изучать синтаксис языка запросов. Данная статья описывает библиотеку TsToOdata, которая превращает запросы в удобную языковую конструкцию и применяется аналогично классам и методам. Вы создаете запросы к строго типизированным коллекциям объектов с помощью ключевых слов языка TypeScript и знакомых операторов.
Методы оптимизации LINQ-запросов в C#.NET
2020-02-20 в 13:52, admin, рубрики: .net, C#, linq, linq to sql, Microsoft SQL Server, MS Sql Server, orm, sql, sql server, t-sql, Администрирование баз данных, базы данныхВведение
В этой статье рассматривались некоторые методы оптимизации LINQ-запросов.
Здесь же приведем еще некоторые подходы по оптимизации кода, связанные с LINQ-запросами.
Читать полностью »
Некоторые аспекты оптимизации LINQ-запросов в C#.NET для MS SQL Server
2019-07-12 в 6:48, admin, рубрики: .net, C#, linq, linq to sql, Microsoft SQL Server, sql, sql server, t-sql, Visual Studio, Администрирование баз данных, оптимизацияLINQ вошел в .NET как новый мощный язык манипуляции с данными. LINQ to SQL как часть его позволяет достаточно удобно общаться с СУБД с помощью например Entity Framework. Однако, достаточно часто применяя его, разработчики забывают смотреть на то, какой именно SQL-запрос будет генерировать LINQ.
Читать полностью »
Помогаем Queryable Provider разобраться с интерполированными строками
2019-03-03 в 18:32, admin, рубрики: .net, C#, dotnet, entity framework core, expression trees, interpolation, linq, linq2sql, string, ПрограммированиеТонкости Queryable Provider
Queryable Provider не справляется вот с этим:
var result = _context.Humans
.Select(x => $"Name: {x.Name} Age: {x.Age}")
.Where(x => x != "")
.ToList();
Он не справится с любым выражением, которое будет использовать интерполированную строку, но без трудностей разберет такое:
var result = _context.Humans
.Select(x => "Name " + x.Name + " Age " + x.Age)
.Where(x => x != "")
.ToList();
Особенно болезненно править баги после включение ClientEvaluation(исключениe при вычислении на клиенте), все профайлы автомаппера должны быть подвергнуты жесткому анализу, на поиск этой самой интерполяции. Давайте разберемся в чем дело и предложим свое решение проблемы
Деревья выражений в enterprise-разработке
2018-09-26 в 12:09, admin, рубрики: .net, .net clr, C#, clr, dotnext, dotnext2018moscow, expression tree, expression trees, linq, Блог компании JUG.ru Group, Компиляторы, Программирование, системное программированиеДля большинства разработчиков использование expression tree ограничивается лямбда-выражениями в LINQ. Зачастую мы вообще не придаем значения тому, как технология работает «под капотом».
В этой статье я продемонстрирую вам продвинутые техники работы с деревьями выражений: устранение дублирования кода в LINQ, кодогенерация, метапрограммирование, транспиляция, автоматизация тестирования.
Вы узнаете, как пользоваться expression tree напрямую, какие подводные камни приготовила технология и как их обойти.
Под катом — видео и текстовая расшифровка моего доклада с DotNext 2018 Piter.
Читать полностью »
LinqToSolr — используем LINQ для получения данных из Solr
2017-04-21 в 6:59, admin, рубрики: .net, C#, linq, solr
В силу того, что в нашей компании в качестве платформы полнотекстового поиска выбор пал на Solr, возникло сильное желание упростить работу с запросами к Solr через использование LINQ выражений.
Перешерстив интернет на наличие альтернатив, я пришел к выводу, что на данный момент необходимой мне библиотеки в общем доступе нет. Максимум, что удалось найти, это очень частичную реализацию запросов в Solr.NET (и скептический комментарий самого автора).
Результатом стала маленькая библиотека LinqToSolr, которая содержит в себе реализацию интерфейса IQueriable<> с возможностью конвертации запросов в понятный Solr API и обратно.
Читать полностью »
Функциональный C#
2017-03-30 в 18:25, admin, рубрики: .net, C#, Either, functional programming, linq, PipeTo, функциональное программированиеC# — язык мультипарадигмальный. В последнее время крен наметился в сторону функциональщины. Можно пойти дальше и добавить еще немного методов-расширений, позволяющих писать меньше кода, не претендуя при этом на то, чтобы превратить язык в F#.Читать полностью »
Использование выражений для фильтрации данных из БД
2017-03-03 в 11:43, admin, рубрики: .net, C#, c#.net, entityframework, expressions, linq, Алгоритмы, ПрограммированиеСтатья основана на ответе в StackOverflow. Начну с описания проблемы, с которой я столкнулся. Есть несколько сущностей в базе данных, которые нужно отображать в виде таблиц на UI. Для доступа к базе данных используется Entity Framework. Для этих таблиц есть фильтры, по полям этих сущностей. Нужно написать код для фильтрации сущностей по параметрам.Читать полностью »
LINQ: Динамическое построение фильтров запросов
2016-10-11 в 6:55, admin, рубрики: .net, C#, expressions, linq, reflectionНаверняка, рано или поздно каждому разработчику приходилось создавать таблицы данных с возможностью сортировки по столбцам и пр. Я не исключение. В нашем проекте подобные таблицы есть чуть ли не на каждой странице, можно сказать что 90% контента выводится через них. Поиск и сортировка по таблицам, естественно, работает без перезагрузки страницы.
Само собой, расширять семантики методов API контроллеров до бесконечной простыни было бы абсолютно глупо непрактично, поэтому нам требовалось универсальное решение для всех наших таблиц. Найти его помогли рефлексия и деревья выражений.