Вопрос

Я ищу мнения о лучших методах передачи сущностей за пределы сборки.Я использую Linq-To-SQL, но тот же вопрос применим к Entity Framework, NHibernate и т. д.

У меня есть сборка, которую я хочу повторно использовать в нескольких проектах.В нем есть несколько сущностей, которые я до сих пор сохранял внутренними, однако я считаю, что было бы полезно вернуть список сущностей вызывающему абоненту.Должен ли я создать новый класс для инкапсуляции данных или просто раскрыть сам объект.

Например, предположим, что у меня есть сущность «Адрес».Было бы лучше иметь метод GetAddress(...), который возвращает объект Address, или мне следует создать другой класс с теми же свойствами, чтобы предоставить данные адреса?

Спасибо!

Это было полезно?

Решение

Один голос за разоблачение сущностей.На практике причины сокрытия объектов за DTO в конечном итоге оказываются неактуальными.Например, когда вы в последний раз отключали свой внутренний уровень доступа к данным ради чего-то совершенно другого, что могло бы привести к потере автоматически созданных классов сущностей?

Кроме того, вы экономите время, избегая болезненных действий по сопоставлению, которые возникают, когда вы предоставляете доступ только к DTO.По моему мнению, наличие инструмента автоматического картографирования, который использует отражение или что-то в этом роде, не считается проблемой, потому что теперь вы платите за производительность то, что в противном случае платили бы за утомление.

Другие советы

Возможно, вы захотите рассмотреть возможность использования репозитория для предоставления объектов внешним сборкам. Здесь — отличная статья CodeProject об универсальном репозитории, который можно использовать с EF.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top