Also ich versuche, an einer Beispielanwendung zu arbeiten. Versuchen, in ADO.NET Entity Framework zu graben. Ich bekomme einen Mitarbeiter wie dies mit einem Verfahren mit LINQ zurück:ADO.NET Entity Framework, Northwind und 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;
}
Dann in einen meiner Unit-Tests Ich habe emps [0] .Orders.Count> 0 und das kommt wieder falsch. So wird meine Orders-Eigenschaft nicht geladen. Was mache ich falsch?
UPDATE:
Irgendwelche Gedanken darüber, wie Sie diese in diese Last übernehmen()/Include Sachen in ein Repository-Muster?
Muss ich lahm etwas wie
public IList<Employee> GetEmployeeById(int id, bool includeOrders)
{
}
Ich glaube nicht, dass theres eine generische beste Möglichkeit ist, dies zu tun, anstatt Include-Befehle zu sagen, würde ich vielleicht faule Listen, Listen zurückgeben, die bei der ersten Verwendung die Load-Methode zuerst aufrufen. – meandmycode
Ok ... Ich habe jemanden gesehen, der über faule Listen in einem Blogpost gesprochen hat. Ich glaube, ich muss von Employee erben, um die einfache Liste durch eine faule zu ersetzen. – BuddyJoe
Sie müssen wahrscheinlich eine Employee-Klasse verwenden, die nicht mit der durch das Entitätsframework definierten Employee-Klasse verknüpft ist, und diese dann in Ihrem Repository zuordnen. Sie müssen auch sorgen, um Änderungen an der Liste der Modelle vorzunehmen, und wie diese Änderungen beibehalten werden, zurück in den Repo .. – meandmycode