0

Я новичок в дизайне, управляемом доменом, поэтому, пожалуйста, извините меня, если этот вопрос тривиален. Я читал о спецификации, и я считаю, что понимал ее намерение. Большинство примеров на Интернете, показывает его использование в двух местах:Является спецификацией для объектов EF или объектов домена

  1. Внутри метода хранилища

  2. Внутри доменных служб услуг/приложений.

Но это будет работать, только если объекты EF и объекты домена одинаковы. И я предполагаю, что это не считается хорошей практикой (с использованием объектов EF для объекта домена). Теперь мой вопрос:

Должны ли мы писать разные правила спецификации для объектов домена и объектов EF, или существует способ повторного использования одного и того же правила для обоих? Я думаю, если мы не будем использовать выражение C# и использовать отражение, которое мы можем каким-то образом достичь.

ответ

0

Имейте в виду, что при работе с репозиториями EF у вас уже есть опция по умолчанию - пусть репозитории возвращают IQueryable<T>, а не IEnumerable<T>. Многие программисты боятся этого, но если это сделать, LINQ станет вашей спецификацией на уровне инфраструктуры.

Затем на уровне домена вы можете применять шаблоны спецификаций и правил для инкапсуляции условий и правил, с которыми должны проверяться объекты домена.

Есть и другие методы, но эта комбинация - это то, что я обычно применяю в своих проектах.

+0

Почему downvotes? Я дал точное описание спецификаций в инфраструктуре и домене с точки зрения разработки, основанной на домене. –

+0

Ум, показывающий эти тегики? – kayess

+1

Существует множество онлайн-ресурсов, в которых обсуждаются плюсы и минусы раскрытия IQueryable из репозиториев. Что касается шаблона спецификации, у меня есть модуль на одном из моих курсов Pluralsight здесь: https://www.pluralsight.com/courses/tactical-design-patternsdot-net –

 Смежные вопросы

  • Нет связанных вопросов^_^