Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#Entity Framework.Any()无法创建类型为';匿名类型';_C#_Entity Framework - Fatal编程技术网

C#Entity Framework.Any()无法创建类型为';匿名类型';

C#Entity Framework.Any()无法创建类型为';匿名类型';,c#,entity-framework,C#,Entity Framework,我正在获取数据库的列表,选择某些内容,然后我想查询另一个数据库,其中原始列表包含此数据库作业引用 var jobRefs = context.jobs.Where(j => j.LSM_Status == null && j.despatched_time == null ) .Select(x =>

我正在获取数据库的列表,选择某些内容,然后我想查询另一个数据库,其中原始列表包含此数据库作业引用

 var jobRefs = context.jobs.Where(j => j.LSM_Status == null &&
                                       j.despatched_time == null
                                       )
      .Select(x => new { x.job_ref, x.volumes_env, x.postout_deadline , x.UniqNo })
      .ToList();


var UpdatedRefs = context.customerslas.Where(c => jobRefs.Any(z=>z.job_ref == c.job_ref) &&
                                      (c.invoiced == 1 ||
                                       c.invoiced == 2) &&
                                       c.active == 1)
                                       .Select(c => c.job_ref)
                                       .ToList();
然后得到这个错误

无法创建“匿名类型”类型的常量值。此上下文中仅支持基元类型或枚举类型。“

第一个查询中的ToList()将数据提取到内存中的集合,而第二个查询(用于比较数据)位于数据库中。要解决这个问题,您需要将它们放在同一个区域中,要么是db,要么是内存

建议使用的最简单的方法是从第一个查询中删除ToList()

var jobRefs = context.jobs.Where(j => j.LSM_Status == null &&
                                       j.despatched_time == null
                                       )
      .Select(x => new { x.job_ref, x.volumes_env, x.postout_deadline , x.UniqNo });


var UpdatedRefs = context.customerslas.Where(c => jobRefs.Any(z=>z.job_ref == c.job_ref) &&
                                      (c.invoiced == 1 ||
                                       c.invoiced == 2) &&
                                       c.active == 1)
                                       .Select(c => c.job_ref)
                                       .ToList();

删除tolist。删除第一个查询中的tolist()。查看您接受语句的答案查询另一个数据库不可能为真。对不起,我想我是说不同的表