3
我想返回当前处于给定状态之一的票证列表。有一个枚举TicketState的数组(值为Open,InProgress和Finished)。Linq包含枚举数组
无法比较类型 'Project.BL.Domain.Ticketing.TicketState []' 的元素:
public IEnumerable<Ticket> ReadTickets(TicketState[] states) { return ctx.Tickets.Where(t => states.Contains(t.State)).AsEnumerable(); }
以下异常当我测试方法出现。只支持原始类型,枚举类型和实体类型。
我试着从数组中创建一个列表,并使用一个字节数组来替代,但我不断收到异常。
有谁知道我该如何解决这个问题?
该代码甚至不会编译 - “states.Contains(t.State)'不是委托或表达式树类型...现在我们可以猜测你刚刚错过了'国家=>'但谁知道还有什么其他的变化... –
http://stackoverflow.com/questions/16615803/only-primitive-types-or-enumeration-types-are-supported-in-this-context ,http://stackoverflow.com/questions/15211362/only-primitive-types-or-enumeration-types-are-supported-in-this-context,http://stackoverflow.com/questions/15592042/linq-to -entities-only-primitive-types-or-enumeration-types-are-supported-error,http://stackoverflow.com/questions/7379394/entity-framework-unable-to-create-a-constant-value-of类型异常,请尝试搜索。 EF无法将该LINQ转换为SQL查询。哪个EF版本是这个?如何声明Ticket.State? – CodeCaster
@JonSkeet,'Contains'肯定会收到一个'T'并检查它的存在。不需要委托或表达。 – haim770