Архитектура веб-сайта Entity Framework 4 - PullRequest
1 голос
/ 12 апреля 2010

Привет, мне дали задание создать сайт N-Teir с использованием Entity Framework 4, и я наталкиваюсь на некоторые кирпичные стены, что, скорее всего, насколько мне известно.

До сих пор я планировал получить эти слои

Сайт (прикладной уровень),
То, что я называю Name.Framework (BLL),
Name.Data (DAL),
Name.Entities (содержит классы POCO и другие классы структуры, используемые в website / bll,
Name.Common (служебный класс)

Я пытался использовать класс репозитория, но изо всех сил стараюсь заставить вещи работать так, как я думал, что они будут. Ниже приведены несколько примеров того, что я застреваю.

Если я хочу использовать .include (), это будет в моем репозитории или это ответственность бизнес-уровня? (и я понятия не имею, как это будет работать в BLL)

Тот же вопрос для .Order ()? Как я понял, это должно быть в репозитории или, по крайней мере, каким-то образом передано в репо?!?

Должен ли я использовать BLL для передачи контекста в хранилище / уровень данных? В тот момент, когда я получаю сущность со слоя данных, любые свойства навигации, на которые не ссылались в репозитории, просто возвращаются с «Object Context Disposed», должен ли бизнес-уровень сохранять контекст и т. Д., Чтобы этого не произошло?

Или подвести итог этой ПОМОЩИ !!!

Мне нужно, чтобы это было в каком-то порядке к завтрашнему дню (eek!), Так как руководитель проекта хочет знать, собираемся ли мы продолжить работу с Entity Framework или перейти на NHibernate, поскольку у нас есть больше знаний об этом.

Спасибо за любую помощь или предложения Matt

Ответы [ 3 ]

1 голос
/ 08 февраля 2011

В поисках чего-то подобного я сам нашел это . В данный момент это не слишком изучено, но выглядит многообещающе.

1 голос
/ 12 апреля 2010

В настоящее время я работаю над проектом веб-хобби с EF4 Code-Only, где у меня есть следующая структура ([имя] является названием моего проекта):

  • [имя] .Web - проект ASP.NET MVC 2
  • [name] .Web.Models - пользовательские модели представлений, а также сопоставления AutoMapper из объектов моей сущности
  • [name] .Models - Мои классы POCO и интерфейсы для репозиториев
  • [имя] .DataAccess - некоторые интерфейсы, связанные с доступом к данным, например, IUnitOfWork
  • [имя] .DataAccess.EF - Все связанные с Entity Framework классы и интерфейсы

У меня также есть тестовый проект для каждого из вышеперечисленных, плюс пара проектов с помощниками и расширениями для тестов.

Может быть, уместно упомянуть, что часть цели этого хобби-проекта для меня состоит в том, чтобы научиться использовать EF4 с некоторыми шаблонами проектирования по своему выбору (те, которые касаются EF в этом проекте, это Шаблон репозитория и Единица работы шаблона). Другая частичная цель - создать базу кода, которую я смогу повторно использовать в более поздних проектах, и это повлияло на разделение между проектами в моем приложении - например, если бы меня не интересовало повторное использование, я бы, вероятно, иметь все связанные с доступом к данным классы в одном проекте вместо двух.

0 голосов
/ 04 июня 2010

Я реализовал базовую архитектуру EF, poco, Repository, UnitOfWork, в значительной степени следуя этой статье:

http://devtalk.dk/CommentView,guid,b5d9cad2-e155-423b-b66f-7ec287c5cb06.aspx

Я нашел, что это очень помогает в этих усилиях. Не знаю, поможет ли это вам, но другие могут заинтересоваться ссылкой.

...