2011-08-25 67 views
0

我想填充字典使用嵌套选择,我得到nullreference异常,因为来自TableC的对象可能不存在。嵌套字典nullreferenceexception使用LINQ和实体框架

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

它改成这样:

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

或者到这一点,如果你想要一个空的字典,而不是空在TestCDict

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

似乎更多的参考问题。我可能需要使用一些嵌套查询来“包含”来自TableC的值。说它只能将基本的东西比作字符串,而不是类型实体 –