модель структуры сущности первый репозиторий путаница - PullRequest
0 голосов
/ 20 декабря 2011

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

В моем текущем проекте я сначала занялся созданием модели. я могу с уверенностью сказать, что мои совокупные корни:

  • Бизнес
  • Пользователь
  • Событие
  • Счет

эти корни довольно богаты ссылками на "искомые объекты" в модели. То есть моя модель содержит 20 нечетных объектов, некоторые из которых используются в основном для поиска. Если бы я внедрил шаблон хранилища,

  1. мне нужно создать POCO для каждой сущности?
  2. Я когда-либо ссылаюсь на автоматически сгенерированные классы / объекты EF как атрибуты хранилища?
  3. Всегда ли мне нужно использовать репозиторий при взаимодействии с платформой сущностей?

Ответы [ 2 ]

0 голосов
/ 20 декабря 2011

В Entity Framework ваш класс DataContext является репозиторием, и тот, над которым у вас есть большой контроль над EF 4.1.Я ни в коем случае не хочу показаться легкомысленным, потому что это действительно хороший вопрос с множеством плохих ответов.

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

1) Это зависит от того, как ваша поведенческая модель (ваши объекты) преобразуется в вашу модель данных (вашу базу данных). На самом деле нет никаких предписаний.

2) EF уже делает это, если под атрибутами вы подразумеваете свойства.

3) Вы уже делаете.: -)

Стивен

0 голосов
/ 20 декабря 2011
  1. Нужно ли мне создавать POCO для каждого объекта? У вас должен быть простой старый объект CLR для большинства объектов в вашей модели. Вы также должны иметь POCO для каждого сложного типа (значение объекта в DDD). Случаи, когда вы не хотите, чтобы POCO для сущности возникали при создании типов герундов для m..n отношений Вы можете создать POCO для них в EF 4.1, но это не обязательно.

  2. Ссылался ли я на автоматически сгенерированные классы / объекты EF как атрибуты репозитория? Единственные автоматически сгенерированные классы / сущности EF, о которых я знаю в коде EF 4.1, - это динамические прокси, которые создаются во время выполнения для заполнения ваших свойств навигации и коллекции. Вы не можете и не должны пытаться ссылаться на них в любом из вашего исходного кода. О, и я думаю, что вы, возможно, путаете термин "атрибут". Атрибуты - это специальные классы, которые вы можете использовать для украшения классов и методов. В этом смысле классы сущностей нельзя использовать в качестве атрибутов.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...