在 LinQ 查询中使用字典
本文关键字:T1 T2 字典 LinQ 查询 | 更新日期: 2024-11-01 00:55:59
我需要执行如下所示的代码:
Dictionary<Int64, List<Int64>> types;
// initialization of dictionary
results = (from m in d.Linq()
where (filter.Types.Any(x =>
x.Key == m.DocumentType.Code
&& x.Value.Contains(m.DocumentPurpose.Code)
)
)
select m
).ToList();
当我执行此测试时,我收到了System.NullReferenceException
.但我确定对象types
不是null
并且至少包含一对(键:26;值:2、4)。
我认为 LINQ 无法将此 Any() 表达式转换为 SQL。如何重写此查询?
试试这个:
results = (from m in d.Linq()
where (m.DocumentType != null &&
m.DocumentPurpose != null &&
filter.Types.Any(x =>
x.Key == m.DocumentType.Code
&& x.Value.Contains(m.DocumentPurpose.Code)
)