【发布时间】:2016-04-10 18:13:01
【问题描述】:
我将一个整数数组传递给一个由模型组成的 API 端点,例如:
public class SomeModel {
public IList<int> ints { get; set; }
}
我要命中的终点是:
Get["/myobjects/{id:int}"] = _ =>
{
var ints = this.Bind<SomeModel>();
return myService.someMethod1((int)_.id, ints.Ints));
};
然后,当我想查询数据库中的对象时,
var count = context.ReadOnly<SomeModel>()
.Query(x => x.myId == id && // id is already defined
ints != null &&
ints.Contains(x.SomeModelId))
.Select(x => x.Id)
.Count();
我使用实体框架作为 ORM。
无法创建类型为“System.Collections.Generic.IList`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral]]”的空常量值。
或者我得到:
无法比较“System.Collections.Generic.IList`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral]”类型的元素。仅支持原始类型、枚举类型和实体类型。
在此上下文中仅支持实体类型、枚举类型或原始类型。
异常表明它无法创建空常量值,但我正在填充传入的数组 - 所以我不明白它为什么会抛出这个错误。
编辑:整数数组未绑定,列表为空。有人知道如何正确绑定到列表吗?
【问题讨论】:
-
这不是 EntityFramework 问题,因为您发现您的
ints对象未正确绑定。您还应该使用 MVC Next(或任何 MVC 6 标记)进行标记,因为新版本中的绑定不同。
标签: c# asp.net .net entity-framework