Что вернуть из моего linq в запрос сущностей - PullRequest
1 голос
/ 10 сентября 2010

Итак, у меня есть библиотека классов доступа к данным

Я делаю linq для вызова сущностей

Я получаю одну строку с моим объектом TableData.

Чтоя должен вернуться из метода моей библиотеки классов?

Я думал, что было бы здорово вернуть обратно объект TableData, но я вижу, что если вы внесете в него изменения и вызовете save, то он фактически обновит базу данных,что я не хочу за пределами моей библиотеки классов.

Что люди обычно возвращают в качестве объекта результатов?

Ответы [ 3 ]

2 голосов
/ 10 сентября 2010

Если вы пытаетесь следовать архитектуре n-уровня, я бы предложил использовать шаблоны Self-Tracking Entity T4.

  1. Откройте свой .EDMX
  2. Щелкните правой кнопкой мыши где-нибудь в пустом пространстве визуального представления ваших моделей и выберите «Добавить элемент генерации кода»
  3. Выберите самоШаблон отслеживания

Тогда ваша модель будет тем, что вы хотите вернуть из своего хранилища, и изменения, которые вы сделаете в своей сущности, будут отслеживаться, когда вы захотите сохранить их обратно в базу данных.

1 голос
/ 10 сентября 2010

Если вы установите состояние отслеживаемого EF-объекта на Detached, изменения не будут распространяться на базу данных.

0 голосов
/ 10 сентября 2010

Это БОЛЬШОЙ вопрос, потому что для меня это действительно указывает на разделение проблем.С одной стороны, вы хотите, чтобы «родные» данные вернулись для проверки или чего-то еще.Но с другой стороны, вам может не понадобиться весь «живой багаж данных».

Я думаю, что именно здесь объекты передачи данных могут играть роль.Я даже зашел так далеко, что определил интерфейсы для DTO, которые имеют свойства только для чтения.«То, что я получаю» определяется тем, что я прошу - IDTO, DTO или Entity-with-logic, потому что некоторый объект бизнес-уровня может потреблять DTO.

Я не использую EF, но в нашемсобственный DAL ORM - это именно то, как он работает - фабрики и службы являются общими и возвращают то, что вы просили.Не хотите беспокоиться о редактировании?Запросите интерфейс, который не имеет доступных для записи свойств.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...