2012-01-19 41 views
0

我正在玩Linq2SQL和Automapper構建我的應用程序的DAL。如何使用LinqToSql和Automapper映射相關表格

從映射到的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. 

我怎樣才能做到這一點?我的代碼有什麼問題?

回答

0

從您的代碼和異常消息Destination property: SubLinqModel中的部分確定,您必須創建從SubLinqModel到SubDomainModel的映射。