Czesc czytajac kilka artykulow, jednoznacznie widac, ze repozytorium nie powinien zwracac DTO, a controller powinien sie tym zajmowac. Tutaj sa powody: http://programmingwithmosh.com/entity-framework/common-mistakes-with-the-repository-pattern/. I w sumie sie z tym zgadzam. Ale zalozmy ze mamy taka sytuacje.
public class SomeEntity
{
public virtual string SomeProperty {get; set;}
public virtual string SomeProperty2 {get; set;}
public virtual SomeEntity2 SomeProperty3 {get; set;}
}
public class SomeEntity2
{
public virtual string SomeProperty {get; set;}
public virtual SomeEntity SomeProperty2 {get; set;}
}
public class Repository
{
// implementacja
public IList<SomeEntity> Get()
{
return (
from e1 in Session.Query<SomeEntity>()
let HowMuch = (from e2 in SomeEntity2 where e2.SomeProperty == "a" ).Count()
where e1.SomeProperty = "a"
select new SomeDto {} // to jest wlasnie motyw jak sie tego pozbyc
).ToList();
}
}
Uzywam NHibernate'a jako ORM'a. Niestety pan wyzej podal prosty przyklad ktory a nie wiem jak go zostosowac u siebie. Czy w takim razie SomeEntity
powinien miec property HowMuch
? Przyklad troche z d**y, ale nie chce wklejac mojego zapytania, ale idea jest osiagnieta.