У меня есть приложение ASP.NET MVC3 .
В моем приложении у меня есть следующие EF классы (hasCauses
и isOfProblems
- свойства навигации):
Problem {string ProblemId, string ProblemName, string ProblemDesc, bool solved, hasCauses}
Cause {string CauseId, string CauseName, string CauseDesc, isOfProblems}
ProblemCause {string ProblemId, string CauseId}
My Хранилище * Методы 1013 * просто возвращают объекты EF (тот же метод для причины)
IQueryable<Problem> GetProblemsById(string problemId)
Теперь в моем слое Service я должен создать объект SolvedProblems
, который должен содержать, среди прочих полей, ProblemId и CauseId и, конечно, они должны быть связаны (согласно ProblemCause
) , Из моего слоя службы я не могу "увидеть" таблицу ProblemCause
, потому что я не использую свойства навигации (они используются только в хранилище ). Поэтому я могу создать метод:
IQueryable<Cause> GetProblemsByCauseId(string causeId)
И заполните ProblemCause
, перебирая Problems
. Однако, если вместо двух таблиц (+ ассоциация) у меня есть 3 или более таблиц взаимосвязаны? Стоит ли делать эти вложенные циклы или перенести всю логику в репозиторий (где я могу использовать свойства навигации) и вернуть SolvedProblems
в Service
?