Linq查询(无法翻译)

穆罕默德(Mohamed Abuelatta):

我有一个非常简单的Linq查询,显示运行时错误

查询是

        // string[] Blocks = _TableView.permission.BlockList.Split(',');
        // string[] Permissions = _TableView.permission.PermissionsList.Split(',');
        string[] Blocks = ... some string array ...;
        string[] Permissions = ... some string array ... ;
            var test = await (from t in _context.DocumentIn
                                          where 
                                          Permissions.Contains(t.Imp_Exp.ToString()) &&
                                          Permissions.Contains(t.confLevel.ToString()) &&
                                          Blocks.Contains(t.BlockName)
                                          select t).ToListAsync();

错误是

could not be translated. Either rewrite the query in a form that can be translated, 
or switch to client evaluation explicitly by inserting a call to either AsEnumerable(),
AsAsyncEnumerable(), ToList(), or ToListAsync().


跟踪时的一些注意事项发现块和权限充满了值。
当我从查询中删除权限的两个条件时,它的工作原理如下

            var test = await (from t in _context.DocumentIn
                                          where 
                                          /*Permissions.Contains(t.Imp_Exp.ToString()) &&
                                          Permissions.Contains(t.confLevel.ToString()) &&*/
                                          Blocks.Contains(t.BlockName)
                                          select t).ToListAsync();
octavioccl:

如果Permissions是基于整数的字符串数组,一个简单的解决方案是将该数组转换为int

int[] Permissions = _TableView.permission
                              .PermissionsList
                              .Split(',')
                              .Select(s => int.Parse(s)).ToArray();

并删除ToString引起异常呼叫:

  var test = await (from t in _context.DocumentIn
                    where Permissions.Contains(t.Imp_Exp) &&
                          Permissions.Contains(t.confLevel) &&
                          Blocks.Contains(t.BlockName)
                    select t).ToListAsync();

但是主要的想法是ToString,无论您遇到什么情况,删除呼叫均应尝试将其从查询中删除

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章