我可以發誓,這是工作的一天:LINQ到實體 - 空引用
var resultSet =
(from o in _entities.Table1
where o.Table2.Table3.SomeColumn == SomeProperty
select o
).First();
SelectedItem = resultSet.Table2.SomeOtherColumn;
我收到的最後一行空引用異常:resultSet.Table2爲空。
不僅我確定所有的外鍵和沒有正確的值,但我不知道如何Table2 可能爲空,因爲o.Table2.Table3.SomeColumn == SomeProperty
。
resultSet具有所有正確的值,除了Table2爲空。
[編輯]這工作:
SelectedItem = _entities.Table2.First(
o => o.Table2.SomeColumn == SomeProperty).SomeOtherColumn;
而且,上面
resultSet
擁有所有正確的價值觀,所以它不與數據庫中的數據有問題; LINQ到實體只是做錯了事情。
我想你應該添加獲取Table2的代碼,因爲問題在於提取它,而不是整個查詢。 –
@Andrew:但resultSet.Table2應該指向resultSet的(唯一)引用的Table2行,不應該嗎?我之前完成了這個工作,沒有任何問題,我相當肯定這就是它的存在...... –
如果Table1爲空,「where o.Table2.Table3.SomeColumn ...」將不會執行,所以理論上Table2可能是空的。 – Kamarey