无法强制转换类型为';的对象;System.Data.Entity.DynamicProxies.Assignme
本文关键字:对象 System Entity Assignme DynamicProxies Data 转换 类型 | 更新日期: 2023-09-27 17:51:15
附加信息:无法将"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;
也不起作用;
我试图清除VS2013临时文件,因为它写在这里还尝试在另一个目录中从头开始重建整个解决方案。尝试过这个
提前谢谢。
代码试图将Assignment
对象(在第一个异常中,它实际上是从Assigment
继承的动态代理对象(强制转换为AssignmentViewModel
。因为AssignmentViewModel
继承自Assignment
,所以它试图将不太特定的类型向下转换为更特定的类型;这是不可能的。
考虑使用AutoMapper之类的工具将模型映射到视图模型。