2012-12-11 37 views
0

我無法讓我的linq行工作。使用LINQ的NullReferenceException

var result = databaseObjects.Where(dbo => dbo.GetType() == typeof(Model.DatabaseTable) ? (dbo as Model.DatabaseTable).FullName.Equals(name) : dbo.Name.Equals(name)); 

我試着用這個方法從這個question的答案使它工作。 我想我知道什麼是錯的,DatabaseObject是一個抽象類,並且我想避免在DatabaseTable的其他所有內容上使用FullName屬性,但是從我可以看到它的確檢查它。

編輯:錯誤:

System.NullReferenceException was unhandled 
{"Object reference not set to an instance of an object."} 

問題是我忘了分配DatabaseObject.Name,DatabaseTableObject.FullName被分配。

+1

你的錯誤是什麼? –

+0

我忘了分配名稱,在DatabaseTable以外的對象上,一個愚蠢的錯誤,並且我一直在尋找linq表達式,這是沒有錯的:) –

回答

3

看起來好像你的某個dbo對象上的FullNameNamenull。要驗證將您的代碼更改爲:

var result = databaseObjects.Where(dbo => dbo.GetType() == typeof(Model.DatabaseTable) ? (dbo as Model.DatabaseTable).FullName == name : dbo.Name == name); 

它不應該拋出異常。

+0

這也是我的猜測。 – Davio

+0

我知道在維護期間發現在堆棧溢出:)在這之前想拉問題,但速度太慢。無論如何謝謝 –

+0

留下它可以幫助他人的問題。我甚至會更新這個問題來顯示你得到的錯誤信息。 –

相關問題