Есть ли имя для шаблона, используемого во внутренних компонентах EF Core?C#

Место общения программистов C#
Ответить
Гость
 Есть ли имя для шаблона, используемого во внутренних компонентах EF Core?

Сообщение Гость »


Я хотел понять, как такие расширения, как EF.Functions.Like, реализуются под капотом EF Core, но когда я перешел к их реализации, я увидел, что они ничего не делают, кроме создания InvalidOperationException

public static bool Like (это DbFunctions _, строка? matchExpression, строка? шаблон) => выбросить новое InvalidOperationException(CoreStrings.FunctionOnClient(nameof(Like))); Мне потребовалось некоторое время, чтобы понять, что это расширение используется только тогда, когда EF транслирует его в SQL — он сканирует Expression и если есть вызов расширения, то его следует заменить на конкретный SQL функция. По какой-то причине это было не так очевидно, как с примитивными типами сравнения. И мне теперь интересно, есть ли название у этой конструкции или узора?

Это напоминает мне интерфейсы маркеров, которые служат одной цели, например, при сканировании сборки.

Может ли это быть «расширение маркера»? Или «Расширение только для выражений»? Или никто даже не удосуживается назвать его из-за ограниченного использования (только в выражениях).
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»