如何使用LinqToSql和Automapper映射相关表

时间:2012-01-19 21:52:58

标签: linq-to-sql automapper

我正在使用Linq2SQL和Automapper来构建我的应用程序的DAL。

从DomainModel映射到LinqModel:

public DataRepository(string connectionString)
{
    Mapper.CreateMap<DomainModel, LinqModel>()
      .ForMember(x => x.SubLinqModel, opt => opt.MapFrom(src => src.SubDomainModel))
    repository = new Linq2SqlRepository<DbDataContext, TDomainModel, TLinqModel>(new DbDataClassesDataContext(connectionString));
    }

DomainModel代码:

public class DomainModel 
{
    public DomainModel()
    {
        SubDomainModelProperty = new List<SubDomainModel>();
    }

    public int ID { get; set; }
    public string Name { get; set; }
    public List<SubDomainModel> SubDomainModelProperty { get; set; }
}

因此,我们在域模型中有一对多的关系。我在LinqModel中也是这样 - 两个链接的一对多表

当我尝试运行时,我遇到了错误:

Trying to map System.Collections.Generic.List`1[SubDomainModel, Version=1.0.0.0,      Culture=neutral, PublicKeyToken=null] to System.Data.Linq.EntitySet`1[SubLinqModel,     Version=1.0.0.0, Culture=neutral, PublicKeyToken=null].
Using mapping configuration for LinqModel to DomainModel
Destination property: SubLinqModel
Exception of type 'AutoMapper.AutoMapperMappingException' was thrown.

我怎样才能做到这一点?我的代码出了什么问题?

1 个答案:

答案 0 :(得分:0)

根据您的代码以及异常消息Destination property: SubLinqModel中的部分确定,您必须创建从SubLinqModel到SubDomainModel的映射。