【问题标题】:Repository without ORM for saving object graph没有 ORM 的存储库,用于保存对象图
【发布时间】:2009-07-16 07:07:38
【问题描述】:

我知道创建存储库来检索没有 ORM 的域模型是相当直接的 (Repository Pattern without LINQ or other 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 暴露给域层?还是我在这里遗漏了什么?

【问题讨论】:

    标签: linq-to-sql ddd-repositories


    【解决方案1】:

    我太难找到解决方案了..

    没有ORM的DDD,有可能吗.. 看http://solveme.wordpress.com/2009/11/11/ddd-without-any-orm-tool-is-it-possible/

    【讨论】:

      猜你喜欢
      • 2011-06-28
      • 2019-09-25
      • 2018-08-16
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多