2013-04-24 110 views
2

我試圖從我的數據庫中查詢一些記錄並將結果轉換爲字符串鍵和字符串值的字典,但不斷得到錯誤「已經添加了相同的密鑰。「C#linq to entity具有相同密鑰的項目已被添加

這是我的LINQ查詢:

var random = (from rec in db.tbl_generatedsampledetails 
       where rec.genID == id 
       select new 
       { 
        [email protected], 
        rec.internalID 
       }).ToDictionary(r => [email protected], r => r.internalID); 

感謝您的幫助! :)

+0

它只是意味着你有重複這是一個關鍵值的條目你'operator' – lexeRoy 2013-04-24 06:07:25

+0

是,除了什麼@lexeRoy說,你應該使用[R .internalID作爲Dictionary鍵。密鑰是一個ID,應該是唯一的。 – KiNG 2013-11-18 05:06:51

回答

0

試試這個:

var randomDict = db.tbl_generatedsampledetails 
        .Where(detail => detail.genID == id) 
        .Select(detail => new { detail.internalID, [email protected] }) 
        .ToDictionary(det => det.internalID, 
           det => [email protected]); 
2

首先檢查您的ID是唯一的或不。要在字典中添加內容,您需要獨特的密鑰。我認爲你的鑰匙不是獨一無二的。如果internalID在數據庫中是唯一的,那麼寫下面給出的代碼。

var random = (from rec in db.tbl_generatedsampledetails 
               where rec.genID == id 
               select new { [email protected], rec.internalID }).ToDictionary(r => r.internalID,r => [email protected]); 
+0

嘿,謝謝!我剛把它弄混了。我應該使用內部id作爲關鍵,而不是操作員。哈哈哈!謝謝。哈哈XD – finnTheHumin 2013-04-24 06:13:56

+0

歡迎男人!!!!!!!!! – 2013-04-24 06:21:55

相關問題