附加信息:无法将类型为“ System.Data.Entity.DynamicProxies.Assignment_20539BEAE4B141780E3B2D295A6858EAA8B5E9C0AD25E8A54154D0AB1E7DFA28”的对象转换为类型“ AssignmentSystem.Models.AssignmentViewModel”。
我有以下模型类的mvc应用程序
/// class for generating EF CodeFirst Db
public class Assignment
{
public Int64 AssignmentId { get; set; }
public Int64? ApplicationUserId { get; set; }
public string Text { get; set; }
public DateTime CreationDate { get; set; }
public virtual List<User> Coordinators { get; set; }
public virtual List<User> Executors { get; set; }
public virtual List<User> DelayResponsible { get; set; }
....
....
}
/// this class for interaction with view
public class AssignmentViewModel : Assignment
{
public IEnumerable<SelectListItem> AvaliableUsers { get; set; }
public IEnumerable<SelectListItem> AvaliableExecutors { get; set; }
public IEnumerable<SelectListItem> AvaliableCoordinators { get; set; }
public IEnumerable<string> SelectedUsers { get; set; }
public IEnumerable<string> SelectedExecutors { get; set; }
public IEnumerable<string> SelectedCoordinators { get; set; }
public AssignmentViewModel() : base ()
{
AvaliableUsers = new List<SelectListItem>();
AvaliableExecutors = new List<SelectListItem>();
AvaliableCoordinators = new List<SelectListItem>();
SelectedUsers = new List<string>();
SelectedExecutors = new List<string>();
SelectedCoordinators = new List<string>();
}
}
我的应用程序运行良好,但是过了一会儿(只需重新编译)POOOF!没用
我在代码中收到上述错误:
// GET: /Assignment/Edit/5
public ActionResult Edit(long? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
AssignmentViewModel assignment = (AssignmentViewModel)db.Assignments.Include(a => a.Attachments)
.Include(a => a.Coordinators)
.Include(a => a.DelayResponsible)
.Include(a => a.Executors)
.Include(a => a.MemberComments)
.Include(a => a.Initiator).First<Assignment>(f => f.AssignmentId == id); //here
....
....
}
和这个:
AssignmentViewModel assignV = new AssignmentViewModel();
Assignment assignment = new Assignment();
assignV = (AssignmentViewModel) assignment;
也不起作用;
我试图清除此处写的VS 2013临时文件,也试图在另一个目录整体解决方案中从头开始重建。试过这个
提前致谢。
代码正在尝试将Assignment
对象(在第一个例外中,它实际上是继承自的动态代理对象Assigment
)转换为AssignmentViewModel
。因为AssignmentViewModel
继承自Assignment
,所以它试图将一个不太具体的类型转换为一个更具体的类型。那是不可能的。
考虑使用类似AutoMapper的工具将模型映射到视图模型。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句