I've seen lots of questions on this topic, but I haven't been able to sort through any of them that actually solve the issue I'm seeing. I have an activities entity that tracks which employee it is assigned to as well as which employee created the record and updated it. If I remove the `where a.AssignedEmployee == currentUser' line of code, I don't get the run time error below.
Unable to create a constant value of type 'DataModels.Employee'. Only primitive types or enumeration types are supported in this context.
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> ..........
A value type is usually whatever type reside on the Stack . A primitive type is a type defined at the programming language level, often it is even a value type, directly supported by the compiler of the language.
The java. lang. Class. isPrimitive() method can determine if the specified object represents a primitive type.
My guess is that error indicates that EF cannot translate the equality operator for Employee
to SQL (regardless of whether you're assuming referential equality or an overridden ==
operator). Assuming the Employee
class has a unique identifier try:
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());
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With