为什么,第一个query.ToList()工作,但第二个不起作用?

use*_*980 6 c# linq entity-framework tolist

我的问题是ToLinq()方法:

我没有理解为什么第一个请求没有问题,但是第二个请求给我一个例外:

(LINQ to Entities中不支持LINQ表达式arrayIndex n的节点类型)

            var q = from a in ctx.ImmImmobilisations select a;
            q = q.Where(x => x.CodeEntite      == "EDEF");
            q = q.Where(x => x.CodeAffectation == "000001");
            q = q.Where(x => x.Unite           == "ITS");
            q = q.OrderBy(x => x.CodeImmobilisation);
            List<ImmImmobilisation> res = q.ToList();

            var query = from e in ctx.ImmImmobilisations select e;
            if (!string.IsNullOrEmpty(args[0])) query = query.Where(x => x.CodeEntite      == args[0]);
            if (!string.IsNullOrEmpty(args[1])) query = query.Where(x => x.CodeAffectation == args[1]);
            if (!string.IsNullOrEmpty(args[2])) query = query.Where(x => x.CodeFamille     == args[2]);
            if (!string.IsNullOrEmpty(args[3])) query = query.Where(x => x.CodeCCout       == args[3]);
            if (!string.IsNullOrEmpty(unite))   query = query.Where(x => x.Unite      == unite);
            query = query.OrderBy(x => x.CodeImmobilisation);
            var ress = query.ToList();
Run Code Online (Sandbox Code Playgroud)

Ser*_*sev 1

您的异常非常明确地说明了您的问题:您不能在 L2Entities 表达式中使用数组元素。