Изменения документа Serialize.Linq
Редактировал(а) Alexandr Fokin 2023/02/08 14:08
От версии 1.11
отредактировано Alexandr Fokin
на 2020/12/20 22:09
на 2020/12/20 22:09
Изменить комментарий:
Редактировать комментарий
К версии 1.3
отредактировано Alexandr Fokin
на 2020/12/20 21:57
на 2020/12/20 21:57
Изменить комментарий:
Редактировать комментарий
Сводка
-
Объекты (1 изменено, 0 добавлено, 0 удалено)
Подробности
- XWiki.XWikiComments[0]
-
- Комментарий
-
... ... @@ -8,17 +8,7 @@ 8 8 Сервер получает запрос, десереализует и выполняет. (использовалось обращение к List, обращение к EF iqueryable) 9 9 Сервер возвращает результирующий набор данных. 10 10 11 -Заметка: 12 - expression tree может быть как частичным (например select(Func<DbEntity, DbEntity>), where(Func<DbEntity, bool>), 13 - так и полностью формировать выборку (Func<IEnumerable<DbEntity>, IEnumerable<DbEntity>>) (причем в данном случае клиент сам может определить момент материализации запроса) 14 14 15 - 16 -Опционально: 17 -- Предполагается, что делаем выборки только на чтение - сразу отключаем changeTracking 18 -- Параметр запроса, отвечающий за LazyLoading 19 -- Параметр, отвечающий за загрузку связанных данных (или флаг, или отдельные выражения для Include) 20 -- Насколько понимаю: классы, задействованные в linq выражении, должны иметь идентичные название и namespace. (Иначе возможно придется на сервере делать автозамену полного имени класса) 21 - 22 - 23 -Из минусов: 24 -вся ответственность по формированию выражения (и соответственно sql запроса) ложиться на клиента, сложнее сделать валидацию, если вообще можно. 12 +Удалось создать собственный класс-сущность, содержащий несколько выражений (select, where). 13 +Передать сериализованный экземпляр класса на сервер. 14 +На сервере получить выражения и применить их к набору IEnumerable.