Question

J'ai une méthode similaire à la suivante :

public List<EmployeeReports> MyMethod (int empId, DateTime startDate)
{
  using(SomeEntities se = new SomeEntities())
  {
   List<EmployeeReports> reports = se.EmployeeReports
   .Where(x => x.EmployeeId == empId
   && DateTime.Compare(x.DateEntered, startDate).ToList();
  }

 return reports;
}

Il s'agit d'un objet de structure d'entité pour une base de données.

Comment le bloc using peut-il être calé ?

Était-ce utile?

La solution

Arrêtez d'utiliser le mot-clé dans n'importe quel code. Si cette est de la plus grande nécessité le transmet au constructeur de la classe (injection de constructeur). Si Les antennes doivent être remplacées et l'affectation n'est pas la principale exigence de création de l'objet de la classe et de garantir que les années sont définis avant l'appel de la fonction (injection de propriété).

Autres conseils

Je ferais abstraction du SomeEntities classe via une interface, de cette façon vous pouvez injecter une implémentation alternative de la même interface dans vos tests.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top