當談到Linq to SQL時,我有點新手,但我希望你能幫上忙。我已經寫了下面的LINQ to SQL語句擴展方法:當我使用Linq to SQL時,爲什麼會出現「Invalid Cast」?
Cedb.ClassEvents.Where(c => c.ClassID == 1).Select(c => c).Single()
凡商務及經濟發展是DataContext的,ClassEvents是(類和事件在設施舉行),一張桌子和的ClassID是唯一的整數鍵。
此查詢在LinqPad(無Cedb)中運行良好。當它返回時,它表示返回類型是「ClassEvent」。在Visual Studio的Intellisense中,它告訴我這個查詢的返回類型是ClassEvent(在我的數據模型中創建)。然而,當我試圖在一個變量的結果:
var classEvent = Cedc.ClassEvents.Where(c.ClassID == 1).Select(c => c).Single();
然後我得到一個錯誤:InvalidCastException的:指定的轉換無效。如果我使用「ClassEvent」類代替var,則會發生同樣的情況。我是新手,但這看起來像是一個真正的扣籃,而不是一個錯誤。有沒有關於Single方法的問題,我不知道是導致錯誤?任何幫助,將不勝感激!
謝謝!我開始輸入「如果有人知道更簡單的方法......」,因爲我記得有一篇「10個神話」文章解釋了這種情況。但是,我想了解所有事情都做了什麼,而不僅僅是尋找捷徑。幸運的是,你們都做到了。再次感謝。 – 2009-01-12 02:38:56
鏈接到[10 LINQ神話](http://www.albahari.com/nutshell/10linqmyths.aspx) – Justin 2012-07-01 22:00:29