2

データベースからいくつかのレコードをクエリし、その結果を文字列キーと文字列値を持つ Dictionary に変換しようとしていますが、「同じキーを持つアイテムが既に追加されています。」というエラーが継続的に発生します。

これは私のlinqクエリです:

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

助けてくれてありがとう!:)

4

2 に答える 2

2

まず、ID が一意であるかどうかを確認します。辞書に何かを追加するには、一意のキーが必要です。あなたのキーは一意ではないと思います。internalID がデータベース内で一意である場合は、以下のコードを記述します。

var random = (from rec in db.tbl_generatedsampledetails
                                                 where rec.genID == id
                                                 select new { rec.@operator, rec.internalID }).ToDictionary(r => r.internalID,r => r.@operator);
于 2013-04-24T06:05:47.913 に答える
0

これを試して:

var randomDict = db.tbl_generatedsampledetails
                   .Where(detail => detail.genID == id)
                   .Select(detail => new { detail.internalID, detail.@operator })
                   .ToDictionary(det => det.internalID,
                                 det => det.@operator);
于 2013-04-24T06:13:12.750 に答える