Interface LINQ to实体不支持“ArrayIndex”LINQ表达式节点类型-使用接口和ReportViewer

Interface LINQ to实体不支持“ArrayIndex”LINQ表达式节点类型-使用接口和ReportViewer,interface,linq-to-entities,reportviewer,Interface,Linq To Entities,Reportviewer,一个简单的问题。 我正在努力实现Linq2Entities语句,该语句可以为特定字段获取多个值。我向getClientsProjected传递了许多字符串,我可以很容易地比较单个值。但是我在我的页面上有多个下拉列表,从中我得到了用coma分隔的字符串,然后我后来使用它将其拆分为字符串[],例如,_uuuaccount_usite=12345678查看下面我尝试过的代码/foreach/不包含任何有效的代码 公共IQueryable getClientsProjectedstring\u帐户\u站

一个简单的问题。 我正在努力实现Linq2Entities语句,该语句可以为特定字段获取多个值。我向getClientsProjected传递了许多字符串,我可以很容易地比较单个值。但是我在我的页面上有多个下拉列表,从中我得到了用coma分隔的字符串,然后我后来使用它将其拆分为字符串[],例如,_uuuaccount_usite=12345678查看下面我尝试过的代码/foreach/不包含任何有效的代码

公共IQueryable getClientsProjectedstring\u帐户\u站点,string\u帐户 { var projectedClients=来自getClosedSRs中的c 选择新建ClientViewModel { _账户ID\U CSR=c.账户ID\U CSR, _账户=c账户, _账户家庭=c.账户家庭, ... ... _帐户\站点=c.帐户\站点 }; 如果String.IsNullOrEmpty\uuuu ACCOUNT!=true&&uuu ACCOUNT!=ALL { //这很好,因为_账户只有一个值 projectedClients=projectedClients。其中c=>c.\u账户==\u账户; } 如果String.IsNullOrEmpty\uuuuu ACCOUNT\u SITE!=true&&uuuu ACCOUNT\u SITE!=ALL { 字符串[]splitSites=uuu ACCOUNT_usite.Split','; //???????????????????????????????????????????????? } 返回项目客户; } 现在,对你们大多数人来说,这将是完全有意义的。我读了很多文章,但没有找到正确的答案。但是,我不能使用Linq2SQL,因为我已经使用L2E、interface和ReportViewer构建了整个站点


任何解决方法?

如果您试图根据splitSites中的值筛选ProjectedClient,请使用:

if (String.IsNullOrEmpty(__ACCOUNT_SITE) != true && __ACCOUNT_SITE != "ALL")
{
    String[] splitSites = __ACCOUNT_SITE.Split(',');
    projectedClients = projectedClients.Where(x => splitSites.Contains(x._ACCOUNT);
}

我确实尝试了此操作,但出现了以下错误:LINQ to Entities无法识别方法“Boolean Contains[String]System.Collections.Generic.IEnumerable`1[System.String],System.String”,并且此方法无法转换为存储表达式。您需要先创建列表。尝试使用:List splitSites=\u ACCOUNT\u SITE.Split','.ToList;代替数组。我添加了ToList;感谢Leons,它在不拆分的情况下工作了:projectedClients=projectedClients。其中c=>\uuuuu ACCOUNT\u SITE.Containsc.\uu ACCOUNT\u SITE:在我做其他事情之前,我欠你一大笔钱!