---
title: "How to return multiple generic lists from a method using Entity Framework ?"  
description: "How to return multiple generic lists from a method using Entity Framework ?"  
author: "Anonymous User"  
published: 2019-06-29  
updated: 2019-07-03  
canonical: https://www.mindstick.com/forum/55127/how-to-return-multiple-generic-lists-from-a-method-using-entity-framework  
category: "c#"  
tags: ["asp.net", "asp.net mvc", "mvc", "mvc3", "mvc4"]  
reading_time: 4 minutes  

---

# How to return multiple generic lists from a method using Entity Framework ?

[Please explain](https://www.mindstick.com/forum/344/hi-rohith-i-am-new-for-mvc-please-explain-how-to-set-implicitly-isauthenticated-true) it if possible...

## Replies

### Reply by Anonymous User

Try to use overloaded method.

```
  public void ExecuteList<T>(out List<T> obj, string sql, params object[] parameters) where T : class
        {
            var db = _context;
            var cmd = db.Database.Connection.CreateCommand();
            cmd.CommandText = sql;
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddRange(parameters);
            try
            {
                db.Database.Connection.Open();
                using (var reder = cmd.ExecuteReader())
                {
                    obj = ((IObjectContextAdapter)db).ObjectContext.Translate<T>(reder).ToList();

                }
            }
            finally
            {
                db.Database.Connection.Close();
                cmd.Dispose();
            }

        }
        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <typeparam name="T1"></typeparam>
        /// <param name="obj"></param>
        /// <param name="obj1"></param>
        /// <param name="sql"></param>
        /// <param name="parameters"></param>
        public void ExecuteList<T, T1>(out List<T> obj, out List<T1> obj1, string sql, params object[] parameters) where T : class
        {
            var db = _context;
            var cmd = db.Database.Connection.CreateCommand();
            cmd.CommandText = sql;
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddRange(parameters);
            try
            {
                db.Database.Connection.Open();
                using (var reder = cmd.ExecuteReader())
                {
                    obj = ((IObjectContextAdapter)db).ObjectContext.Translate<T>(reder).ToList();
                    reder.NextResult();
                    obj1 = ((IObjectContextAdapter)db).ObjectContext.Translate<T1>(reder).ToList();
                }
            }
            finally
            {
                db.Database.Connection.Close();
                cmd.Dispose();
            }

        }
        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <typeparam name="T1"></typeparam>
        /// <typeparam name="T2"></typeparam>
        /// <param name="obj"></param>
        /// <param name="obj1"></param>
        /// <param name="obj2"></param>
        /// <param name="sql"></param>
        /// <param name="parameters"></param>
        public void ExecuteList<T, T1, T2>(out List<T> obj, out List<T1> obj1, out List<T2> obj2, string sql, params object[] parameters) where T : class
        {
            var db = _context;
            var cmd = db.Database.Connection.CreateCommand();
            cmd.CommandText = sql;
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddRange(parameters);
            try
            {
                db.Database.Connection.Open();
                using (var reder = cmd.ExecuteReader())
                {
                    obj = ((IObjectContextAdapter)db).ObjectContext.Translate<T>(reder).ToList();

                    reder.NextResult();
                    obj1 = ((IObjectContextAdapter)db).ObjectContext.Translate<T1>(reder).ToList();
                    reder.NextResult();
                    obj2 = ((IObjectContextAdapter)db).ObjectContext.Translate<T2>(reder).ToList();
                }
            }
            finally
            {
                db.Database.Connection.Close();
                cmd.Dispose();
            }

        }
```

\


---

Original Source: https://www.mindstick.com/forum/55127/how-to-return-multiple-generic-lists-from-a-method-using-entity-framework

Copyright © MindStick Software Pvt. Ltd. This Markdown version is provided for developers, AI systems, and offline reading.
