我以前做了很多使用存儲過程進行所有數據修改的開發。試圖獲取第一個項目收集返回NULL
但是我現在需要使用LINQ To SQL,並且一個基本的基本任務讓我難住。
我有一個叫做Book(Title,Author,等等)的類。一些書被實例化並被添加到 public ObservableCollection Books
到目前爲止,我可以看到它的藏品中包含有效的書籍。
我有一個功能DeleteOldestBook()它只是得到書中的第一本書,並刪除。這是我遇到麻煩的地方。
我嘗試和選擇
Book BookToDelete = Books.Take(1) as Book;
,但它總是返回NULL。
我已經成功哈克解決方法:
var AllBooks = from BookToDelete in Books select BookToDelete;
foreach (Book BookToDelete in AllBooks)
{
// BookToDelete.dostuff takes place ...
break; // only do 1
}
但是,這是可怕的,我知道有一些簡單的我已經錯過了。
LINQ專家的任何想法?讓我知道你是否需要更多的代碼。
在此先感謝
有沒有'Books.FirstOrDefault()'? – mindandmedia 2012-03-01 21:33:31
首先,使用調試器驗證您可以在Books中看到一本書。其次,在Books.Take(1)上添加一個監視並確保它可以轉換爲一本書,因爲如果投射失敗,「as」投射將返回null。另一種測試演員表的方法是將該行更改爲Book BookToDelete =(Book)Books.Take(1); – 2012-03-01 21:38:30
有幾個很好的答案 - 一定要接受爲你工作的答案。 – Fourth 2012-03-01 21:46:10