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

StackOverflow https://stackoverflow.com/questions/1135880

  •  16-09-2019
  •  | 
  •  

Вопрос

Я знаю, что довольно просто создать репозиторий для получения моделей предметной области без 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 уровню домена?Или я что-то здесь упускаю?

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top