我正在使用实体 fromework 6 并且 func 无法正常工作,这是我的代码
DbSet<vExpenseRegister> dbSet1 = Context.Set<vExpenseRegister>();
// got db set from dbcontext, it is ok
Func<vExpenseRegister, bool> where= a => a.InvoiceDate > fromDate;
// create a delegate and pass a condition
var result = dbSet1.Where(where).AsQueryable().ToList();
// but result is nothing, in spite of record exists in database
//but i change code eliminate Func delegate and condition write in where method //like
var result = dbSet1.Where(a => a.InvoiceDate > fromDate).AsQueryable().ToList();
//working fine
请帮助我为什么 Func 不起作用
谢谢阿克马尔。
这
应该是一个Expression<Func<...>>
:
Func<vExpenseRegister, bool> where= a => a.InvoiceDate > fromDate;
所以
Expression<Func<vExpenseRegister, bool>> where = a => a.InvoiceDate > fromDate;
如果它只是一个Func<...>
它将在返回整个表后在内存中执行。
如果你看一下dbSet1.Where
的签名,你应该看到它需要一个表达式。