Редактировал(а) Alexandr Fokin 2026/04/02 19:25

От версии 1.8
отредактировано Alexandr Fokin
на 2026/04/02 19:21
Изменить комментарий: К данной версии нет комментариев
К версии 1.1
отредактировано Alexandr Fokin
на 2026/04/02 19:14
Изменить комментарий: К данной версии нет комментариев

Сводка

Подробности

Свойства страницы
Название
... ... @@ -1,1 +1,1 @@
1 -Фиксирование условий в виде компонентов
1 +Фиксирование условий в виде методов
Содержимое
... ... @@ -1,8 +1,4 @@
1 1  |(% style="width:186px" %) |(% style="width:1247px" %)Возможная реализация идеи фиксации правил в виде отдельных компонентов.
2 -Позволяет держать все правила в одном месте, гарантирует что изменение повлияет на все нужные места.
3 -Использование IQueryable т.к. он позволяет строить запросы (но важно учитывать конечный план запроса).
4 -Также можно реализовать компоненты под другой формат взаимодействия (OneOf, TryGetIfNotNull) (например те, которые часто используются).
5 -|(% style="width:186px" %) |(% style="width:1247px" %)[[IEnumerable>>doc:Разработка.NET.C#.Коллекции.IEnumerable.WebHome]], [[IQueryable>>doc:Разработка.NET.C#.Коллекции.IQueryable.WebHome]]
6 6  |(% style="width:186px" %)Пример компонента для фиксации правила/условия.|(% style="width:1247px" %)(((
7 7  |(% style="width:88px" %)InMemory condition|(% style="width:1104px" %){{code language="c#"}}public interface IInMemoryCondition<TData, TParameters>
8 8  {
... ... @@ -68,7 +68,7 @@
68 68   return _applayQueryableFunc(source, parameters);
69 69   }
70 70  }{{/code}}
71 -|(% style="width:88px" %)Контейнер для агрегата.|(% style="width:1104px" %){{code language="c#"}} public interface TEntityConditions
67 +|(% style="width:88px" %) |(% style="width:1104px" %){{code language="c#"}} public interface TEntityConditions
72 72  {
73 73   public (
74 74   IInMemoryCondition<TEntity, long> Memory,
... ... @@ -85,6 +85,8 @@
85 85   IQueryableCondition<TEntity, object?> Query
86 86   ) IsRule1 { get; }
87 87  }{{/code}}|
84 +
85 +
88 88  )))
89 89  |(% style="width:186px" %)Вспомогательный Extension|(% style="width:1247px" %)(((
90 90  |{{code language="c#"}}public static class IConditionExtension
... ... @@ -110,6 +110,9 @@
110 110   }
111 111  }{{/code}}|
112 112  | |
111 +| |
112 +
113 +
113 113  )))
114 114  
115 115