C# 查询MVC{search parameters}

C# 查询MVC{search parameters},c#,sql,asp.net-mvc,asp.net-mvc-4,C#,Sql,Asp.net Mvc,Asp.net Mvc 4,我有“搜索”服务 如何做到这一点 我尝试过,但没有成功…您应该能够将其添加为Parameters对象PainelChamadParameters的另一个属性,然后在搜索函数中,您可以按如下方式使用它,假设您的数据模型是这样的: public IEnumerable<PainelChamada> Search(PainelChamadaParamenters parameters) { var query = base.context.PaineisChamada.AsQ

我有“搜索”服务

如何做到这一点


我尝试过,但没有成功…

您应该能够将其添加为Parameters对象PainelChamadParameters的另一个属性,然后在搜索函数中,您可以按如下方式使用它,假设您的数据模型是这样的:

 public IEnumerable<PainelChamada> Search(PainelChamadaParamenters parameters)
 {
     var query = base.context.PaineisChamada.AsQueryable();
     if (parameters.Id.HasValue)
         query = query.Where(x => x.Id == parameters.Id);
     if (parameters.DataAcessoInicio.HasValue)
         query = query.Where(x => x.DataModificacao == parameters.DataAcessoInicio);
     if (parameters.DataAcessoFim.HasValue)
         query = query.Where(x => x.DataModificacao == parameters.DataAcessoFim);
     if (!string.IsNullOrEmpty(parameters.Descricao))
         query = query.Where(x => x.Descricao.Contains(parameters.Descricao));

     if (parameters.Fornecedores.Length > 0)
         query = query.Where(x => parameters.Fornecedores.ToList().Contains(x.Fornecedor));

     return query;
    }
公共IEnumerable搜索(PainelChamadParameters参数)
{
var query=base.context.PaineisChamada.AsQueryable();
if(parameters.Id.HasValue)
query=query.Where(x=>x.Id==parameters.Id);
if(parameters.dataacessonicio.HasValue)
query=query.Where(x=>x.DataModificacao==parameters.dataacessonicio);
if(parameters.DataAcessoFim.HasValue)
query=query.Where(x=>x.DataModificacao==parameters.DataAcessoFim);
如果(!string.IsNullOrEmpty(parameters.descripcao))
query=query.Where(x=>x.descripcao.Contains(parameters.descripcao));
如果(parameters.Fornecedores.Length>0)
query=query.Where(x=>parameters.Fornecedores.ToList().Contains(x.Fornecedor));
返回查询;
}

2个错误。错误2实例参数:无法从“字符串[]”转换为“System.Linq.IQueryable”C:\ProjetosRTC\W132\03-implementacao\aplicativo\web\Services\PainelChamadServices.cs 75 42 ServicesError 3的字符串[]不包含“Contains”的定义,并且最佳扩展方法重载“System.Linq.Queryable.Contains”(System.Linq.IQueryable,TSource)“”具有一些无效参数C:\ProjetosRTC\W132\03-implementacao\aplicativo\web\Services\PainelChamadaServices.cs 75 42 servicesty调用Fornecedores数组上的.ToList()扩展方法。更新的代码示例。
public string[] Fornecedores { get; set; }
 public IEnumerable<PainelChamada> Search(PainelChamadaParamenters parameters)
 {
     var query = base.context.PaineisChamada.AsQueryable();
     if (parameters.Id.HasValue)
         query = query.Where(x => x.Id == parameters.Id);
     if (parameters.DataAcessoInicio.HasValue)
         query = query.Where(x => x.DataModificacao == parameters.DataAcessoInicio);
     if (parameters.DataAcessoFim.HasValue)
         query = query.Where(x => x.DataModificacao == parameters.DataAcessoFim);
     if (!string.IsNullOrEmpty(parameters.Descricao))
         query = query.Where(x => x.Descricao.Contains(parameters.Descricao));

     if (parameters.Fornecedores.Length > 0)
         query = query.Where(x => parameters.Fornecedores.ToList().Contains(x.Fornecedor));

     return query;
    }