Linq to sql 用于保存对象图的不带ORM的存储库

Linq to sql 用于保存对象图的不带ORM的存储库,linq-to-sql,ddd-repositories,Linq To Sql,Ddd Repositories,我知道创建用于检索域模型的存储库而不使用ORM()是相当简单的。但是,如何保存域模型及其内部对象图呢 public class Car: IAggregateRoot, IEntity, ICar { public IEnumerable<IWheel> Wheels {get; set;} } public class CarRepository { public void Save(ICar car) { // calls Dao // updat

我知道创建用于检索域模型的存储库而不使用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
  }
}
公共级汽车:IAggregateRoot、Icentity、ICar
{
公共IEnumerable控制盘{get;set;}
}
公共级进位
{
公共无效保存(ICar车辆)
{
//叫道
//根据需要更新/插入所有车轮
//根据需要更新/插入车辆
}
}
在这里,我们需要了解变更跟踪等。如何实施变更跟踪

对于我的具体实现,我将Linq to Sql视为Dao。Linq到sql确实会更改跟踪,但我创建的域模型不会更改。它们是直接的POCO,不直接由linq映射到sql。一切都由自定义数据映射器完成

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));
  }
}
public类CarDataMapper:IMapper
{
公共ICar地图(LinqData.Car linqCar)
{
ICar=newcar(){Wheels=linqCar.Wheels.Select(w=>newwheeldatamapper().Map(w));
}
}

有没有直接的方法实现存储库来保存对象图而不向域层公开linqToSql或NHibernate?或者我在这里遗漏了什么?

我很难找到解决方案

DDD没有ORM,有可能吗。。 看