Репозиторий без ORM для сохранения графа объекта

Я знаю, что довольно просто создать репозиторий для получения моделей домена без ORM (Шаблон репозитория без LINQ или другого ORM?). Однако как насчет сохранения моделей предметной области и ее внутреннего графа объектов?

public class Car: IAggregateRoot, IEntity, ICar
{
  public IEnumerable<IWheel> Wheels {get; set;}
}

public class CarRepository
{
  public void Save(ICar car) 
  {
    // calls Dao
    // update/insert all wheels as required
    // update/insert car as required
  }
}

Здесь нам нужно заняться отслеживанием изменений и т. Д. Как это реализовать?

Для моей конкретной реализации я отношусь к Linq to Sql как к Dao. Linq to sql отслеживает изменения, а созданные мной модели предметной области - нет. Они являются прямым POCO и не отображаются напрямую linq в sql. Все делается с помощью настраиваемого DataMapper

public class CarDataMapper : IMapper<LinqData.Car, Domain.ICar>
{
  public ICar Map(LinqData.Car linqCar)
  {
    ICar = new Car () { Wheels = linqCar.Wheels.Select( w => new WheelDataMapper().Map(w));
  }
}

Есть ли какой-либо прямой способ реализовать репозиторий для сохранения графа объектов, не подвергая linqToSql или NHibernate уровню домена? Или мне что-то здесь не хватает?


person ronaldwidha    schedule 16.07.2009    source источник


Ответы (1)


Я слишком изо всех сил пытаюсь найти решение ..

Возможно ли DDD без ORM .. Посмотрите на http://solveme.wordpress.com/2009/11/11/ddd-without-any-orm-tool-is-it-possible/

person SN.    schedule 11.11.2009