我有一种方法可以通过FromDate
过滤所有票证。
我的代码是这样的:
public List<Model.Ticket> SelectList(DateTime? fromDate = null)
{
db.Tickets.Where(row=> (!fromDate.HasValue || (fromDate.HasValue ? (row.Date.Date >= fromDate.Value.Date) : false));
}
但是当传递null时它返回一个异常:
Nullable对象必须有值。
出了什么问题?
答案 0 :(得分:2)
你需要通过FromDate过滤所有Ticket,但是在你的where条件只会根据你作为参数传递的formdate返回true或false。但是where条件期望逻辑从表中过滤数据你必须修改你所处的条件
where(ticket=>ticket.formDate--here what ever the condition you need to apply)
注意:对于你的lambda表达式(
db.Tickets.Where(!fromDate.HasValue || (fromDate.HasValue ? (row.Date.Date >= fromDate.Value.Date) : false))
)
db查询将是
select * from Tickets where true/false--acording to the output
这不会起作用
答案 1 :(得分:0)
也许在你的对象声明中你必须初始化它
答案 2 :(得分:0)
使用new
关键字初始化为空。由于直接将null赋值给某个对象并不能携带所需的内容。调试仍然显示null
的值,但它不能同样实例化。