为了从数据库中检索具有某些条件的数据,我使用以下代码:
IEnumerable<Object> iEnumuDeclarations2 = ObjectDAO.Find(d => d.id == 1).ToList();
但太慢了。最后发生内存异常
public IEnumerable<TEntity> Find(Func<TEntity, bool> predicate)
{
return DataContext.CreateObjectSet<TEntity>().Where<TEntity>(predicate);
}
答案 0 :(得分:1)
请尝试这可能是有效的:
var iEnumuDeclarations2 = declaration_importationDAO.Where(d => d.id_service == id_service).ToList();
答案 1 :(得分:1)
您应该使用Expression<Func<TEntity, bool>>
代替Func<TEntity, bool>
不同之处在于,表达式可以由EF解释为生成SQL查询,并在mssql服务器上执行它,您正在做的事情是将每个对象放入内存然后查询本地对象,具体取决于数据库的大小可能会导致内存不足,但仍然不太可能。但至少这解释了缓慢。