Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法创建类型为的常量值。仅支持基元类型或枚举类型_C#_Entity Framework_Primitive - Fatal编程技术网

C# 无法创建类型为的常量值。仅支持基元类型或枚举类型

C# 无法创建类型为的常量值。仅支持基元类型或枚举类型,c#,entity-framework,primitive,C#,Entity Framework,Primitive,我拥有如下实体: class Serial { public int Id { get; set; } public string No { get; set; } } 我要得到的是一个序列号列表和一个序列号列表,但我不断地得到错误: Unable to create a constant value of type ProjectName.Models.Serial. Only primitive types or enumeration types are support

我拥有如下实体:

class Serial {
    public int Id { get; set; }
    public string No { get; set; }
}
我要得到的是一个序列号列表和一个序列号列表,但我不断地得到错误:

 Unable to create a constant value of type ProjectName.Models.Serial. Only primitive types or enumeration types are supported.
这是我到目前为止写的:

List<Serial> serials = _ctx.Serials.Where(s => sList.Any(ss => ss.Id == s.Id)).ToList();
List serials=_ctx.serials.Where(s=>sList.Any(ss=>ss.Id==s.Id)).ToList();

List serials=_ctx.serials.Where(s=>sList.Select(ss=>ss.Id).Contains(s.Id)).ToList();

应该像这样简单

var ids =  List<int> { 324,54,234,645};

Var serialized = _ctx.Serials.Where(s => ids.Contains(s.Id)).ToList();
varids=List{324,54234645};
Var serialized=_ctx.Serials.Where(s=>ids.Contains(s.Id)).ToList();

通过使用确定序列是否包含指定元素 默认的相等比较器

var ids =  List<int> { 324,54,234,645};

Var serialized = _ctx.Serials.Where(s => ids.Contains(s.Id)).ToList();