相关疑难解决方法(0)

在此上下文中仅支持基元类型或枚举类型

我已经看到很多关于这个主题的问题,但是我无法解决任何实际解决我所看到的问题的问题.我有一个活动实体,它跟踪分配给哪个员工以及哪个员工创建了记录并对其进行了更新.如果我删除`where a.AssignedEmployee == currentUser'代码行,我不会得到下面的运行时错误.

无法创建"DataModels.Employee"类型的常量值.在此上下文中仅支持基元类型或枚举类型.

CONTROLLER

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

视图

@model IEnumerable<Data.DataModels.Activity>
..........
Run Code Online (Sandbox Code Playgroud)

c# linq asp.net-mvc entity-framework

38
推荐指数
3
解决办法
7万
查看次数

在此上下文中仅支持基元类型或枚举类型

所以我有这个代码:

    public int saleCount(List<Shift> shifts) {
        var query = (
            from x in database.ItemSales
            where shifts.Any(y => y.ID == x.shiftID)
            select x.SalesCount
        );
        return query.Sum();
    }
Run Code Online (Sandbox Code Playgroud)

不幸的是,它抛出了这个错误:

Unable to create a constant value of type 'Shift'. 
Only primitive types or enumeration types are supported in this context.
Run Code Online (Sandbox Code Playgroud)

所以这里是我定义shift的地方,这只是一个正常的Entity Framework Code First对象:

[Table("Shifts")]
public class Shift : MPropertyAsStringSettable {
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int ID { get; set; }
    public int SiteID { get; set; }
    public string ShiftID_In_POS { get; set; …
Run Code Online (Sandbox Code Playgroud)

c# linq entity-framework

9
推荐指数
1
解决办法
2万
查看次数

支持Linq To Entities的唯一原始类型或枚举类型'错误

我正在使用LinqPad来测试我的查询.当LInqPad连接到我的数据库(LInq to SQL)时,此查询有效但当我更改连接以使用我的Entity Framework 5 Model.dll时它不起作用.(Linq to Entity).这是在C#中.

我有两个名为Plan和PlanDetails的表.关系是许多PlanDetails的一个计划.

var q = from pd in PlanDetails
        select new {
            pd.PlanDetailID,
            ThePlanName = (from p in this.Plans
                    where p.PlanID == pd.PlanID
                    select p.PlanName)
        };
var results = q.ToList();
q.Dump(); //This is a linqpad method to output the result.
Run Code Online (Sandbox Code Playgroud)

我收到此错误"NotSupportedException:无法创建类型'Domain.Data.Plan'的常量值.在此上下文中仅支持基本类型或枚举类型." 任何想法为什么这只适用于Linq to SQL?

linq linq-to-entities linq-to-sql c#-4.0 entity-framework-5

7
推荐指数
2
解决办法
3万
查看次数

实体框架 - "无法创建类型的常量值..."异常

有人可以帮我解决这个异常:

测试方法KravmagaTests.Model.Entities.StudentTest.Create_Valid_Student抛出异常:System.NotSupportedException:无法创建类型为"Kravmaga.Models.Account"的常量值.在此上下文中仅支持原始类型(例如Int32,String和Guid').

我运行这个测试方法时得到这个:

[TestMethod]
public void Create_Valid_Student()
{
    Student student = new Student()
    {
        Username = "username",
        Firstname = "firstname",
        Surname = "surname",
        Email = "email@gmail.com",
        Password = "password",
    };
    KravmagaContext context = new KravmagaContext();
    context.AddToAccounts(student);
    context.Save();
    bool exists = context.Accounts.Contains(student); // THIS THROWS EXCEPTION
    Assert.IsTrue(exists);
}
Run Code Online (Sandbox Code Playgroud)

非常感谢.

c# entity-framework exception

6
推荐指数
1
解决办法
5323
查看次数