Func detegate 不适用于 Entity Fromework



我正在使用实体 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的签名,你应该看到它需要一个表达式。

最新更新