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 'AsEnumerable',

The LINQ expression 'DbSet<Supplies>()
          .Where(s => s.alarmState == "缺货")
          .Where(s => !(__invalidList_0
              .Any(y => s.id == y.id)))' 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 'AsEnumerable', 'AsAsyncEnumerable', 'ToList', or 'ToListAsync'. See https://go.microsoft.com/fwlink/?linkid=2101038 for more information.

执行下面语句出错,我得到的错误是"无法翻译.要么以可以翻译的形式重写查询,要么通过插入对AsEnumerable(),AsAsyncEnumerable(),ToList()或ToListAsync()."

 db.ApplicationForm.Where(x => realNeedApplyList.Any(y => x.id == y.applicationformid));

也就是 在where 中认不出 y.applicationformid,所以改一下

var applicationformids = realNeedApplyList.Select(x => x.applicationformid);
var applicationform = db.ApplicationForm.Where(x => applicationformids.Contains(x.id));

改成两句就可以了。

原文地址:https://www.cnblogs.com/lunawzh/p/15170799.html