EmitMapper + EF. Collection mapping issue

The source class:

public class Page  : EntityBase 
{
    public Page()
    {
        this.Articles = new List<Article>();
    }

    public virtual ICollection<Article> Articles { get; set; }
}

public class Article : EntityBase 
{
    public Article()
    {
        this.Pages = new List<Page>();
    }

    public virtual ICollection<Page> Pages { get; set; }
}

the destination class

public class EditPageModel : ModelBase 
{
    public string Title { get; set; }
    public List<Article> Articles { get; set; }

    public override ModelBase Initialize(EntityBase entity)
    {
        return ObjectMapperManager.DefaultInstance.GetMapper<Page, EditPageModel>().Map((Page)entity);
    }
}

When I use

var model = (EditPageModel)new EditPageModel().Initialize(entity);

I got an error

Unable to cast object of type 'System.Data.Entity.DynamicProxies.Article_2F97D0440149ED4566ED7675640D475A23EB97002CFD5941610DD0C9BCE74E55' to type 'System.Collections.Generic.ICollection`1[SomeProject.Dal.Models.Articles.Article]'.

With AutoMapper it works fine.

Upvotes: 3

Views: 617

Answers (0)

Related Questions