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()。查看您接受语句的答案查询另一个数据库不可能为真。对不起,我想我是说不同的表