Укажите имена полей при сопоставлении List‹KeyValuePair› в Dapper

Я получаю результаты от Dapper as a Dictionary:

  using (var multi = cnn.QueryMultiple("dbo.[s_Dashboard_stats]", 
     commandType: CommandType.StoredProcedure))
  {
    var recentHits =
        multi.Read().ToDictionary(x => (string)x.URL, x => (double)x.MinsAgo);
  }

Это работало нормально, но изменение данных привело (правильно) к дублированию значений ключа. Чтобы обойти это, я подумал, что вместо этого изменю словарь на список:

var PopularHits =
    multi.Read<KeyValuePair<string, double>>().ToList<KeyValuePair<string, double>>();

Список заканчивается элементами, но значения KVP равны нулю. Как спроецировать значения в объекты KeyValuePair? Кажется, я не могу правильно понять синтаксис лямбда.....


person Simon    schedule 06.12.2013    source источник
comment
@lazyberezovsky multi - это средство чтения с несколькими сетками, возвращенное из QueryMultiple, хотя следует отметить, что при чтении одной сетки в этом нет необходимости - этот запрос можно прочитать с помощью Query   -  person Marc Gravell    schedule 06.12.2013
comment
@MarcGravell спасибо, Марк. Еще не использовал считыватели с несколькими сетками   -  person Sergey Berezovskiy    schedule 06.12.2013
comment
@lazyberezovsky они вам нужны только в том случае, если ваш запрос содержит несколько select, что может быть полезно, например, select * from Customers where Id=@id; select * from Orders where CustomerId=@id; select * from CustomerAddresses where CustomerId=@id; (или что-то еще)   -  person Marc Gravell    schedule 06.12.2013
comment
Здесь так и есть, на самом деле есть несколько SELECT , которые я пропустил в примере кода.   -  person Simon    schedule 06.12.2013