Репозиторий без ORM для сохранения графа объектов - PullRequest
2 голосов
/ 16 июля 2009

Я знаю, что довольно просто создать репозиторий для получения моделей доменов без 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 для Sql как Dao. Linq to sql изменяет отслеживание, но созданные мной модели домена - нет. Они являются прямыми POCO и не отображаются напрямую linq to 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));
  }
}

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

1 Ответ

1 голос
/ 11 ноября 2009

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

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

...