0

我需要执行如下代码:

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。我怎样才能重写这个查询?

4

1 回答 1

2

尝试这个:

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)
                                )
于 2012-08-08T05:32:12.140 回答