无法创建类型的常量值。仅支持原始类型或枚举类型

时间:2018-04-04 06:51:04

标签: c# entity-framework primitive

我有一个如下的实体:

class Serial {
    public int Id { get; set; }
    public string No { get; set; }
}

我必须得到的是串行ID列表中的连续出版物列表,但我不断得到错误:

 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<Serial> serials = _ctx.Serials.Where(s => sList.Select(ss => ss.Id).Contains(s.Id)).ToList();

1 个答案:

答案 0 :(得分:0)

它应该像这个一样简单

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

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

Enumerable.Contains Method (IEnumerable, TSource)

  

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