实体框架5.0.我的查询有什么问题?
本文关键字:什么 问题 查询 我的 框架 实体 | 更新日期: 2023-09-27 18:03:42
这是我的代码:
public DateTime GibSomeStartDate(IEnumerable<int> partnerNumbers, DateTime startTime)
{
var contractsStartDate = from contract in this.databaseContext.Contract
where partnerNumbers.Contains(contract.Pnr)
&& contract.SomeDateTime >= startTime
select contract.SomeDateTime;
}
如果我调用contractsStartDate.Min()
一个异常发生:
Unable to create a null constant value of type 'System.Collections.Generic.IEnumerable`1'. Only entity types, enumeration types or primitive types are supported in this context.
我的查询有什么问题?
contractsStartDate
为类型System.Data.Entity.Infrastructure.DbQuery
EF 5.0
databaseContext
是System.Data.Entity.DbContext
的子代
我知道这个错误。只要确保partnerNumbers
不为空。您正在为这个参数传递一个空值,但是Linq-to-entities无法将该值转换为任何有意义的值。
if (partnerNumbers == null)
{
throw new ArgumentNullException("partnerNumbers");
}
附加建议:
如果SomeDateTime
是not nullable
并且枚举中没有条目,那么调用Min()
时将得到异常。在查询中将SomeDateTime
转换为nullable
类型将工作,然后在没有条目时获得null。