14
Karma
0
Rating
Евгений @brager17

.NET разработчик

API на F#. Доступ к модулям приложения на основе ролей

Пример Model-View-Update архитектуры на F#

Пример Model-View-Update архитектуры на F#

+2
Насчет структуры хранения авторов, согласен, еще проблемы возникнут, когда авторы будут начинаться на одну букву, но моей целью не было создание приложения для чтения стихотворений в консоли, спасибо за развернутый комментарий

Пример Model-View-Update архитектуры на F#

+2
Я разбирался как работает elmish, изучил исходный код, убрал из него все, что было излишним для моих задач и написал приложение, чтобы закрепить понимание, как там все устроено, разумеется в разработке я использую elmish, а не мою облегченную модификацию

Помогаем Queryable Provider разобраться с интерполированными строками

Помогаем Queryable Provider разобраться с интерполированными строками

Тонкости Lambda Expressions в C#

0

Это поведение c#, он так строит лямбду, так что ef поведение ef корректно

Глобальное кеширование результатов Query в ASP.NET CORE

0

Как с помощью датасета неявно закешировать результаты Query? Тут скорее вопрос методологии и вам CQRS не нравится

Глобальное кеширование результатов Query в ASP.NET CORE

+1

Это не очень хорошее решение, работа с асинхронным кодом отличается даже на уровне компилятора. Поэтому не стоит объединять это под одним интерфейсом, интерфейс должен быть явным. Да и каждый раз оборачивать возвращаемое значение IQuery в Task ужасно.
Написать один раз вот так легче:


public interface IAsyncQuery<TIn, TOut>: IQuery<TIn, Task<TOut>
{
}

Помогаем Queryable Provider разобраться с интерполированными строками

+1
Одна из задач Queryable Provider'a транслировать запрос из Expression Tree(который строится, когда вы пишете LINQ к интерфейсу IQueryable) в SQL и делать запрос к базе данных.

Но тут есть проблемы:
1) Не весь LINQ будет транслирован в Expression Tree, например такой не будет:

  context.Select(x = > {
     if(x.Age < 18)
        return "Underage";
     else
       return "Adult";
   }

2) LINQ который удастся транслировать в Expression Tree, может быть не транслируем в SQL, в таких случаях EF Core 2.1 сделает запрос к базе данных с тем SQL запросом, который смог транслировать, а остальное обработает в памяти, но это поведение можно переопределить и он станет падать каждый раз, когда не может полностью разобрать Expression Tree.

Кстати ReSharper выделяет самые очевидные «проблемные» места запроса.

Помогаем Queryable Provider разобраться с интерполированными строками

+1
Я не думаю, что можно переопределить штатный провайдер, вы можете написать обертку для IQueryable которая при вызове ToList/First/Count/… будет переписывать оригинальный Expression, и в этой обертке добавлять часть общих бизнес правил, если тема представляет интерес, сделаю статью, потому что в реализации есть подводные камни