Изменения документа Serialize.Linq
Редактировал(а) Alexandr Fokin 2023/02/08 14:08
От версии 1.2
отредактировано Alexandr Fokin
на 2020/12/20 19:15
на 2020/12/20 19:15
Изменить комментарий:
Добавлен комментарий
К версии 1.9
отредактировано Alexandr Fokin
на 2020/12/20 22:06
на 2020/12/20 22:06
Изменить комментарий:
Редактировать комментарий
Сводка
-
Объекты (1 изменено, 0 добавлено, 0 удалено)
Подробности
- XWiki.XWikiComments[0]
-
- Комментарий
-
... ... @@ -1,5 +1,23 @@ 1 -Тестовый проект1. 1 +Тестовый проект 1. 2 2 3 -Удалось создать собственный класс-сущность, содержащий несколько выражений (select, where). 4 -Передать сериализованный экземпляр класса на сервер. 5 -На сервере получить выражения и применить их к набору IEnumerable. 3 +Приложения: 4 +ASP.NET web api 5 +консольный клиент 6 + 7 +Клиент посылает на сервер LINQ expression tree в формате JSON. 8 +Сервер получает запрос, десереализует и выполняет. (использовалось обращение к List, обращение к EF iqueryable) 9 +Сервер возвращает результирующий набор данных. 10 + 11 +Заметка: 12 + expression tree может быть как частичным (например select(Func<DbEntity, DbEntity>), where(Func<DbEntity, bool>), 13 + так и полностью формировать выборку (Func<IEnumerable<DbEntity>, IEnumerable<DbEntity>>) 14 + 15 + 16 +Опционально: 17 +- Предполагается, что делаем выборки только на чтение - сразу отключаем changeTracking 18 +- Параметр запроса, отвечающий за LazyLoading 19 +- Параметр, отвечающий за загрузку связанных данных (или флаг, или отдельные выражения для Include) (причем в данном случае клиент сам может определить момент материализации запроса) 20 + 21 + 22 +Из минусов: 23 +вся ответственность по формированию выражения (и соответственно sql запроса) ложиться на клиента, сложнее сделать валидацию, если вообще можно. - Дата
-
... ... @@ -1,1 +1,1 @@ 1 -2020-12-20 19:15:55.20 91 +2020-12-20 19:15:55.210