Alors j'essaie de travailler sur un exemple d'application. Essayer de creuser dans ADO.NET Entity Framework. J'obtenir un employé de retour en utilisant une méthode avec LINQ comme ceci:ADO.NET Entity Framework, Northwind et Employee.Orders> 0
public IList<Employee> FindByLastName(string lastName)
{
IList<Employee> emps;
var e = from emp in _ctx.Employees where emp.LastName == lastName select emp;
emps = e.ToList<Employee>();
return emps;
}
Puis, dans un de mes tests unitaires J'ai emps [0] .Orders.Count> 0 et cela revient faux. Donc ma propriété Orders ne se charge pas. Qu'est-ce que je fais mal?
MISE À JOUR:
Toute réflexion sur la façon dont vous intégrer dans cette charge()/Inclure des choses dans un modèle référentiel?
Dois-je faire quelque chose boiteux comme
public IList<Employee> GetEmployeeById(int id, bool includeOrders)
{
}
Je ne pense pas qu'il existe une meilleure façon générique de faire cela, plutôt que d'inclure des commandes, je retournerais peut-être des listes paresseuses, des listes qui, lorsqu'elles seront utilisées pour la première fois. – meandmycode
Ok ... J'ai vu quelqu'un parler de listes paresseuses sur un blog. Je suppose que je devrais hériter de l'employé pour remplacer la liste simple par un paresseux. – BuddyJoe
Vous aurez probablement besoin d'avoir une classe Employee qui n'est pas associée à la classe Employee définie par entity framework, puis de les mapper dans votre référentiel. Vous devrez également vous soucier de faire des changements à la liste des modèles, et comment ces changements sont restés à la repo .. – meandmycode