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

4.1k views Asked by At

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.

1

There are 1 answers

1
Andriy Horen On BEST 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);