У меня есть трехуровневое веб-приложение с множеством простых форм. Один для записи записей, один для редактирования одной записи и т. Д. Работы.
У меня есть DataLayer, где находится мой EDMX.
У меня есть слой приложений, где находятся мои POCO.
У меня есть BusinessLayer со всеми классами контроллеров и т. Д. (Не MVC!)
У меня есть слой пользовательского интерфейса, где мой веб-интерфейс.
EDMX имеет много-много таблиц с множеством навигационных свойств.
Конечно, когда я получаю данные на одном из моих контроллеров, например GetCustomerById (int id), я создаю контекст объекта и закрываю его, когда я закончу.
Однако ObjectContext
выходит за рамки, когда я пытаюсь получить доступ к свойствам навигации в слое пользовательского интерфейса.
Должен ли я сделать (using MyContext = new MyContext()) {... }
в веб-слое ?? это не кажется правильным.
Должен ли я создать другой набор POCO, которые я заполняю из данных сущностей из BizLayer?
Что происходит, когда я хочу сохранить данные, введенные в веб-форму? Буду ли я называть контроллер BizLayer, например SaveCustomer ()
У меня вопрос: как вы проектируете слой веб-интерфейса, если я хочу иметь возможность надлежащим образом обращаться к свойствам навигации объекта?
Примечание:
EDMX установлен на LazyLoading.