嵌套的AutoMapper嵌套在Entity Framework中?

时间:2014-05-08 20:23:11

标签: c# entity-framework automapper

我正在尝试将AutoMapper嵌套到嵌套在嵌套内的EF模型中。 例如下面的代码categorySrc,languageSrc,abstractSrc..etc和categoryDe​​st,languageDest,abstractDest ..etc类是相同的。

现在我正在尝试将categorySrc映射到categoryDe​​st,所以我做了如下所示,如果抛出错误  我在这里做错了吗?

  var categoryData = abstractContext.GetCategoryByCatId(catId);
        Mapper.CreateMap<Models.categoryDest, categorySource>();
        Mapper.CreateMap<languageDest, Models.languageSource>();
        Mapper.CreateMap<@abstractDest, Models.@abstractSrc>();
        Mapper.CreateMap<abstract_categoryDest, Models.abstract_categorySrc>();
        Mapper.CreateMap<questionDest, Models.questionSrc>();
        Mapper.CreateMap ... //For other objects
        Mapper.CreateMap ...//For other objects
        Mapper.AssertConfigurationIsValid(); //Error occurring here 
        var category = Mapper.Map<category,Models.category>(categoryData);

类:

public partial class categoryDest
{

    public int category_id { get; set; }
    public int language_id { get; set; }
    public virtual languageDest language { get; set; }
}

public partial class languageDest
{
    public language()
    {
        this.abstracts = new HashSet<@abstractDest>();
        this.abstract_category = new HashSet<abstract_categoryDest>();
        this.categories = new HashSet<categoryDest>();
        this.questions = new HashSet<questionDest>();
    }

    public int language_id { get; set; }
    public string language_name { get; set; }
    public string language_locale_code { get; set; }

    public virtual ICollection<@abstractDest> abstracts { get; set; }
    public virtual ICollection<abstract_categoryDest> abstract_category { get; set; }
    public virtual ICollection<categoryDest> categories { get; set; }
    public virtual ICollection<questionDest> questions { get; set; }
}


public partial class @abstractDest
    {
        public @abstract()
        {
            this.abstract_category = new HashSet<abstract_categoryDest>();
            this.abstract_fields = new HashSet<abstract_fieldsDest>();
            this.abstract_image = new HashSet<abstract_imageDest>();
            this.people = new HashSet<person>();
        }

        public int abstract_id { get; set; }
        public int language_id { get; set; }
        public string abstract_name { get; set; }      

        public virtual ICollection<abstract_categoryDest> abstract_category { get; set; }
        public virtual ICollection<abstract_fieldsDest> abstract_fields { get; set; }
        public virtual ICollection<abstract_imageDest> abstract_image { get; set; }
        public virtual languageDest language { get; set; }
        public virtual ICollection<personDest> people { get; set; }
    }

如何进行复杂的映射?

0 个答案:

没有答案