var db = new dbContext(); string query = @"select ID , Name from People where ... " ; var lst = db.ExecuteQuery<PeopleView>(query); public static List < T > ExecuteQuery < T >( this dbContext db, string query ) where T : class, new ( ) { using ( var command = db.Database.GetDbConnection().CreateCommand()) { command.CommandText = query; command.CommandType = CommandType.Text; db.Database.OpenConnection(); using ( var reader = command.ExecuteReader()) { var lst = new List<T>(); var lstColumns = new T().GetType().GetProperties(BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic).ToList(); while (reader.Read()) { var newObject = new T(); for ( var i = ...