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

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

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

Это определенно чрезмерно упрощенное объяснение и, вероятно, невероятно неверное! :)

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


person Howiecamp    schedule 02.08.2010    source источник


Ответы (1)


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

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

http://automapper.codeplex.com/

person Ken Burkhardt    schedule 02.08.2010