一尘不染

在此上下文中仅支持原始类型或枚举类型

c#

我已经看到了很多与此主题有关的问题,但是我无法对其中所有能够真正解决我所遇到的问题的问题进行分类。我有一个活动实体,该实体可以跟踪将其分配给哪个员工以及哪个员工创建了记录并对其进行了更新。如果删除代码中的“
where a.AssignedEmployee == currentUser”行,则不会在下面出现运行时错误。

无法创建类型为“ DataModels.Employee”的常量值。在此上下文中仅支持原始类型或枚举类型。

控制器

var query = from a in db.Activities
            where a.AssignedEmployee == currentUser
            where a.IsComplete == false
            orderby a.DueDate
            select a;
return View(query.ToList());

视图

@model IEnumerable<Data.DataModels.Activity>
..........

阅读 266

收藏
2020-05-19

共1个答案

一尘不染

我的猜测是,该错误表明EF无法将等于运算符转换为EmployeeSQL(无论您是假定引用相等还是重写==运算符)。假设Employee该类具有唯一标识符,请尝试:

var query = from a in db.Activities
            where a.AssignedEmployeeId == currentUser.Id
            where a.IsComplete == false
            orderby a.DueDate
            select a;
return View(query.ToList());
2020-05-19