Какие есть варианты передачи объектов между слоями при использовании LINQ to SQL? - PullRequest
1 голос
/ 02 августа 2010

Когда я думаю о традиционном многоуровневом дизайне приложений, я часто думаю о 3 слоях:

  • Самый нижний уровень, который фактически взаимодействует с базой данных (назовем это «уровнем доступа к данным»). Он возвращает объекты (в той или иной форме) на следующий слой.
  • Слой над самым нижним слоем (средний уровень, который я назову «слоем данных») берет объекты из уровня доступа к данным и возвращает объекты домена на бизнес-уровень.
  • Бизнес-уровень берет объекты домена из уровня данных и работает с ними.

Это, безусловно, слишком упрощенное объяснение и, вероятно, невероятно неправильное! :)

Очевидно, что LINQ to SQL является ORM, уровень доступа к данным создает объекты LINQ to SQL. Какова правильная схема передачи этих объектов в средний и верхний слои?

1 Ответ

1 голос
/ 02 августа 2010

Вы можете использовать такую ​​технологию, как AutoMapper, чтобы копировать ваши LINQ to SQL Objects в ваши бизнес-объекты на вашем бизнес-уровне.В зависимости от вашего сценария у вас может быть другой слой объектов передачи данных, который вы передаете клиенту.Вы можете снова использовать AutoMapper для копирования соответствующих свойств из бизнес-объектов в объекты DTO.

http://en.wikipedia.org/wiki/Data_transfer_object

http://automapper.codeplex.com/

...