How do I ensure that linked objects are loaded using LinqKit?
I am using LinqKit to add "Expression Predicates", I have to do "foreach" to load related objects and it is very expensive for an application to load 1000 records takes 4 minutes on average. Is there a way to speed up this Load process?
public override IQueryable<Entity.Modelos.FluxoDeCaixa> Filtro(System.Linq.Expressions.Expression<System.Func<Entity.Modelos.FluxoDeCaixa, bool>> expressao)
{
var query = from f in _contexto.FluxoDeCaixa.AsExpandable().Where(expressao)
from fu in _contexto.Funcionario.Where(x => x.PessoaId == f.FuncionarioId)
from pl in _contexto.PlanoDeContas.Where(x => x.PlanoDeContasId == f.PlanoDeContasId)
from pf in _contexto.PessoaFisica.Where(x => x.PessoaId == f.PessoaId).DefaultIfEmpty()
from pj in _contexto.PessoaJuridica.Where(x => x.PessoaId == f.PessoaId).DefaultIfEmpty()
select f;
foreach (var f in query)
{
_contexto.Entry(f)
.Reference(r => r.PlanoDeContas)
.Load();
_contexto.Entry(f)
.Reference(r => r.Funcionario)
.Load();
_contexto.Entry(f)
.Reference(r => r.Pessoa)
.Load();
}
return query;
}
+3
source to share
No one has answered this question yet
Check out similar questions: