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();