I am trying to return two result sets from an SQL Server database using Entity Framework 6. I would like to try this by running 2 Linq to Entity queries using a single DBContext. My question is by using a single DBContext is whether my request is only being hit by a database connection once. I think it is but I am not sure.
class RequestRefLists
{
public List<Employee> EmployeeList {get;set;}
public List<Dept> DeptList {get;set;}
}
public RequestRefLists GetRequestRefLists()
{
RequestRefLists ReqRefLists = new RequestRefLists();
using(var context= new BusinessDBContext())
{
var queryResult1 = from e in context.Employees
select e;
ReqRefLists.EmployeeList = (List<Employee>)queryResult1.ToList();
var queryResult2 = from d in context.Departments
select d;
ReqRefLists.DeptList = (List<Dept>)queryResult2.ToList();
}
return ReqRefLists;
}
You can use Entity Framework Extended Library.
There is a feature named Future queries
class RequestRefLists
{
public List<Employee> EmployeeList {get;set;}
public List<Dept> DeptList {get;set;}
}
public RequestRefLists GetRequestRefLists()
{
RequestRefLists ReqRefLists = new RequestRefLists();
using(var context= new BusinessDBContext)
{
var queryResult1 = from e in context.Employees
select e;
ReqRefLists.EmployeeList = queryResult1.Future();
var queryResult2 = from d in context.Departments
select d;
ReqRefLists.DeptList = queryResult2.Future();
}
return ReqRefLists;
}
Your queries will execute lazy on first enumeration of any collection.
ExecuteFutureQueries builds a batch query from all the stored IFutureQuery objects. Finally, all the IFutureQuery objects are updated with the results from the query.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With