动态Linq C#
我正在使用动态Linq C#,c#,linq,entity-framework,asp.net-mvc-4,C#,Linq,Entity Framework,Asp.net Mvc 4,我正在使用System.Linq.Dynamic使dinanmico成为我研究的对象。在下面的代码中,我尝试按Funcao进行筛选,但返回错误: 类型“ASO”中不存在属性或字段“Funcao” 如何根据我的Linq别名进行过滤 代码 问题是这一行db.ASO.ToListERP(usuarioLogado.EmpresaIDLogada).AsQueryable().Where(Where,filtro) 您的类ASO没有属性Funcao 尝试删除该行上的Where。试试这个
System.Linq.Dynamic
使dinanmico成为我研究的对象。在下面的代码中,我尝试按Funcao
进行筛选,但返回错误:
类型“ASO”中不存在属性或字段“Funcao”
如何根据我的Linq别名进行过滤
代码
问题是这一行
db.ASO.ToListERP(usuarioLogado.EmpresaIDLogada).AsQueryable().Where(Where,filtro)
您的类ASO
没有属性Funcao
尝试删除该行上的Where
。试试这个
var resultado = new ResultadoListagemPadrao();
resultado.TotalRegistros = db.ASO.Total(usuarioLogado.EmpresaIDLogada);
var query = (from a in db.ASO.ToListERP(usuarioLogado.EmpresaIDLogada).AsQueryable()
select new
{
a.ASOID,
a.FuncionarioID,
Cliente = a.Funcionario.Cliente.Pessoa.Nome,
Setor = a.FuncionarioFuncao.Funcao.Setor.Descricao,
Funcao = a.FuncionarioFuncao.Funcao.Descricao,
Funcionario = a.Funcionario.Pessoa.Nome,
a.DtASO,
a.Status
})
.Where(where, filtro);
resultado.TotalRegistrosVisualizados = query.Count();
resultado.Dados = query
.OrderBy(orderna + " " + ordenaTipo)
.Skip(iniciarNoRegistro)
.Take(qtdeRegistro)
.ToArray();
return resultado;
请以后翻译您的代码。对于这个特定问题,我认为没有必要使用动态LINQ,常规LINQ应该可以工作。您可以将
Where
语句链接起来。
var resultado = new ResultadoListagemPadrao();
resultado.TotalRegistros = db.ASO.Total(usuarioLogado.EmpresaIDLogada);
var query = (from a in db.ASO.ToListERP(usuarioLogado.EmpresaIDLogada).AsQueryable()
select new
{
a.ASOID,
a.FuncionarioID,
Cliente = a.Funcionario.Cliente.Pessoa.Nome,
Setor = a.FuncionarioFuncao.Funcao.Setor.Descricao,
Funcao = a.FuncionarioFuncao.Funcao.Descricao,
Funcionario = a.Funcionario.Pessoa.Nome,
a.DtASO,
a.Status
})
.Where(where, filtro);
resultado.TotalRegistrosVisualizados = query.Count();
resultado.Dados = query
.OrderBy(orderna + " " + ordenaTipo)
.Skip(iniciarNoRegistro)
.Take(qtdeRegistro)
.ToArray();
return resultado;