0

我正在尝试使用 EF5、MVC 和 Automapper 将记录从一个表移动到另一个匹配的(几乎)表中。这段代码是我正在使用的:

在我的全球应用程序中_开始

//Create Map and manually map StatusCode to Status
            Mapper.CreateMap<InstitutionStaging, InstitutionStaging_Archive>()
               .ForMember(dest => dest.Status,o =>o.MapFrom(src=>src.StatusCode));

在我的控制器中

 private MyContext db = new MyContext();

   Public ActionResult ArchiveMe(int id = 0){

  var institutionstaging = db.InstitutionStagings.Find(id);

        if (institutionstaging == null)
        {
            return HttpNotFound();
        }
        if (ModelState.IsValid)
        {  

            var institutionArchive = Mapper.Map<InstitutionStaging, InstitutionStaging_Archive>(institutionstaging);
            //Set Archive date to now.
            institutionArchive.ArchiveDate = DateTime.Now;
//Error happens on the next line
db.InstitutionStaging_Archives.Add(institutionArchive);

            db.InstitutionStagings.Remove(institutionstaging);
            db.Entry(institutionArchive).State = EntityState.Added;
            //Commit the changes
            var result = db.SaveChanges();
            }
}

当它到达标记为“此处发生错误==>”的行时,我收到以下错误消息。

{"The entity type InstitutionStaging_Archive is not part of the model for the current context."}

MyContext 包含 InstitutionStaging 和 InstitutionStaging_Archive 的 DbSet。

知道发生了什么吗?蒂亚杰

4

1 回答 1

1

此错误通常不是 AutoMapper 的问题,而是您的实体框架模型设置的问题。

可能是因为您使用了错误的连接字符串,也可能是因为您没有正确映射模型。

因为我们不知道你的模型是什么,你的数据库是什么样的,或者你的映射是怎样的……除此之外无济于事。

为了向自己证明这一点,只需注释掉自动映射器的内容并手动完成,我很确定你会得到同样的错误。

于 2012-09-25T20:28:07.007 回答