How to put objects into a dictionary using Dapper in C#?

c# dapper dictionary sql-server

Question

I have a dictionary like the following:

Dictionary<string,SP> dict;

that contains a string and a SP object.

I would like to do the following

dict = conn.Query("SELECT routine_name,created,modified FROM PROCEDURES").toDictionary (
                        row => (string)row.Routine_Name,
                        row => new SP (Name=row.Routine_Name,Created=row.created,Modified=row.modified));

The above code is not working. How can I create a SP object with the above information. I have a constructor that takes these three parameters.

Accepted Answer

  1. Create proper model

    public class SP {
        public string RoutineName { get; set; }
        public DateTime Created { get; set; }
        public DateTime Modified { get; set; }
    }
    
  2. Map your query to model properties, select it to dictionary

    Dictionary<string, SP> dictionary = connection.Query<SP>(@"
        SELECT 
             routine_name AS RoutineName,
             created AS Created,
             modified AS Modified
        FROM PROCEDURES
    ").ToDictionary(m => m.RoutineName, m => m);
    


Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Is this KB legal? Yes, learn why
Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Is this KB legal? Yes, learn why