Изменения документа Serialize.Linq

Редактировал(а) Alexandr Fokin 2023/02/08 14:08

От версии 1.11
отредактировано Alexandr Fokin
на 2020/12/20 22:09
Изменить комментарий: Редактировать комментарий
К версии 1.21
отредактировано Alexandr Fokin
на 2023/02/08 14:08
Изменить комментарий: К данной версии нет комментариев

Сводка

Подробности

Свойства страницы
Родительский документ
... ... @@ -1,1 +1,1 @@
1 -Разработка.NET.Библиотеки.WebHome
1 +Разработка.NET.Библиотеки.Документы.Форматы данных и схемы.WebHome
Содержимое
... ... @@ -1,4 +2,3 @@
1 -
2 2  esskar/Serialize.Linq
3 3  https://github.com/esskar/Serialize.Linq
4 4  
... ... @@ -9,3 +9,4 @@
9 9  Данная библиотека позволяет передавать LINQ expression в сериализованном виде.
10 10  В репозитории приведен пример проекта ASP.NET MVC WebAPI REST и клиента к нему (JSON).
11 11  
11 +[[Expression tree | Деревья выражений>>doc:Разработка.NET.C#.Рантайм и типы.Expression tree | Деревья выражений.WebHome]]
XWiki.XWikiComments[0]
Комментарий
... ... @@ -5,12 +5,13 @@
5 5  консольный клиент
6 6  
7 7  Клиент посылает на сервер LINQ expression tree в формате JSON.
8 -Сервер получает запрос, десереализует и выполняет. (использовалось обращение к List, обращение к EF iqueryable)
8 +Сервер получает запрос, десериализует и выполняет. (обращение к List, обращение к EF iqueryable)
9 9  Сервер возвращает результирующий набор данных.
10 10  
11 11  Заметка:
12 12   expression tree может быть как частичным (например select(Func<DbEntity, DbEntity>), where(Func<DbEntity, bool>),
13 - так и полностью формировать выборку (Func<IEnumerable<DbEntity>, IEnumerable<DbEntity>>) (причем в данном случае клиент сам может определить момент материализации запроса)
13 + так и полностью формировать выборку (Func<IEnumerable<DbEntity>, IEnumerable<DbEntity>>)
14 + (причем в данном случае клиент сам может определить момент материализации запроса)
14 14  
15 15  
16 16  Опционально:
... ... @@ -17,8 +17,11 @@
17 17  - Предполагается, что делаем выборки только на чтение - сразу отключаем changeTracking
18 18  - Параметр запроса, отвечающий за LazyLoading
19 19  - Параметр, отвечающий за загрузку связанных данных (или флаг, или отдельные выражения для Include)
20 -- Насколько понимаю: классы, задействованные в linq выражении, должны иметь идентичные название и namespace. (Иначе возможно придется на сервере делать автозамену полного имени класса)
21 +- Насколько понимаю: классы, задействованные в linq выражении, должны иметь идентичные название и namespace в клиентском и серверном приложении.
22 + (Иначе возможно придется на сервере делать автозамену полного имени класса)
23 +- Рассмотреть. Поддержка Async при получение результата sql запроса.
24 +- Рассмотреть. Использование многопоточности при обработки результата. (Возможно отдельным параметром)
21 21  
22 22  
23 23  Из минусов:
24 -вся ответственность по формированию выражения (и соответственно sql запроса) ложиться на клиента, сложнее сделать валидацию, если вообще можно.
28 +вся ответственность по формированию выражения (и соответственно sql запроса) ложиться на клиента, сложнее сделать валидацию.