Faire plusieurs requêtes Linq To Entity dans Entity Framework en utilisant un seul DBContext Connectez-vous une seule fois à la database

J'essaie de returnner deux sets de résultats à partir d'une database SQL Server en utilisant Entity Framework 6. Je voudrais essayer ceci en exécutant 2 requêtes Linq to Entity en utilisant un seul DBContext. Ma question est en utilisant un seul DBContext est si ma request est seulement touchée par une connection de database une fois. Je pense que c'est mais je ne suis pas sûr.

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; } 

Vous pouvez utiliser Entity Framework Extended Library .

Il existe une fonctionnalité appelée Demandes futures

 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; } 

Vos requêtes s'exécuteront paresseux lors de la première énumération de n'importe quelle collection.

ExecuteFutureQueries génère une requête par lots à partir de tous les objects IFutureQuery stockés. Enfin, tous les objects IFutureQuery sont mis à jour avec les résultats de la requête.