Должны ли sprocs (всегда) возвращать завершенную сущность? - PullRequest
0 голосов
/ 16 января 2012

Я в процессе добавления EF (4.2) к существующему проекту .NET.

Существующая кодовая база в основном полагалась на ADO.NET для вызова нескольких sprocs.Теперь, когда мы движемся к EF, я хочу убедиться, что мы делаем это наилучшим и наиболее удобным способом.

Моя проблема в том, что текущая база кода sproc не всегда возвращает полную информацию о сущностях, которыми они являютсяназван в честь:

GetUsersByAdministrator (int adminId)

Существующий (sproc) код возвращает только userId, имя и фамилию.

Мне эта функция не возвращает «Пользователи» и не должна быть включена (как указано) в бизнес-логику Пользователей.

Мне кажется проблематичным, если создается впечатление, чтоФункция возвращает «Пользователь», но не возвращает полную сущность.

TL; DR

При реализации BLL все материализационные хранимые процедуры должны материализовать полную сущность?

например. Всегда ли требуется статический метод класса Users, называемый GetUsersByXYZ, для возврата полного объекта User?

User.GetUsersByXYZ (int id)

Должны ли эти функции бытьлучше разместить в отдельной сборке служебных функций и переименовать методы в более подходящие имена Util.GetUserIdAndNamesByXYZ?

1 Ответ

1 голос
/ 16 января 2012

При реализации BLL должны ли все вспомогательные хранимые процедуры материализовать целостную сущность?

Нет. Они могут материализовать сущность, сложный тип или даже не отображенный класс.

Должен ли статический метод класса Users, называемый GetUsersByXYZ, всегда возвращать завершенный объект User?

Речь идет о наименовании. То, что ваши хранимые процедуры в настоящее время возвращают, является проекцией пользовательских данных - она ​​возвращает только данные, необходимые в некотором контексте. Итак, давайте присвоим проекции другое имя типа, например UserNameInfo, и используем его.

Должны ли эти функции быть лучше расположены в отдельной сборке служебные функции и методы должны быть переименованы в более подходящие имена Util.GetUserIdAndNamesByXYZ

Помощник собирается или нет, он все равно будет зависеть от EF => это часть доступа к данным.

...