使用linq和实体框架的嵌套字典nullreferenceexception

时间:2011-08-25 08:28:28

标签: linq entity-framework

我正在尝试使用嵌套选择填充字典,并且我得到nullreference异常,因为TableC中的对象可能不存在。

List<SomeResult> test = (from a in _entities.TableA
                         select new SomeResult
                         {
                            TestB = a.TableB.Name,
                            TestCDict = a.TableC.ToDictionary(x => x.SomeKey, x => x.SomeValue)
                          }).ToList();

如何修复,TestCDict可以为null?

/拉塞

1 个答案:

答案 0 :(得分:1)

将其更改为:

TestCDict = a.TableC == null ? null
            : a.TableC.ToDictionary(x => x.SomeKey, x => x.SomeValue)

或者,如果你想在TestCDict中使用空字典而不是null:

TestCDict = a.TableC == null ? new Dictionary<TypeOfKey, TypeOfValue>()
            : a.TableC.ToDictionary(x => x.SomeKey, x => x.SomeValue)