Я знаю, что этот вопрос задавался много раз, так как я читал довольно много сообщений на тему о плюсах и минусах и т.д., но я все еще не могу решить, какой подход подходит мне. Im очень новичок в веб-программировании и исходит из базы данных DB Admin/report writing. Я решил попробовать создать собственный сайт, который может в конечном итоге иметь 30-40 таблиц, возможно, больше в будущем.
Ive посмотрел на оба подхода, и я одобряю подход Entity Model только потому, что мне нравится простота дизайнера, и мне нравится видеть всю модель впереди меня, она показывает общую картину в одном снимке. Кроме того, я не являюсь сильным программистом, меня впечатляет то, как он генерирует POCO с использованием шаблона генератора DbContext и выполняет все связывание между классами.
Однако, хотя мне нравится первый подход к модели, я чувствую, что есть некоторые обратные сокращения, Im не уверен, являются ли они фактическими недостатками, или я просто не знаю достаточно о первом подходе модели и первом подходе к коду, поскольку Im все еще очень новичок в этом.
Причины, по которым я не решаюсь использовать подход Model First:
-Можно, потому что я изо всех сил стараюсь найти учебники по первому подходу Model с использованием MVC 3. Лучшее учебное пособие, которое я нашел с помощью DbContext, - это Джулия Лерман, но она не охватывает классы друзей, которые важны для использования аннотаций данных и внесения других изменений этот arent теряется, когда вы восстанавливаете POCOs. Большинство руководств MVC 3, похоже, используют первый подход Code. Большинство людей говорят, что это связано с тем, что преподаватель не хочет сосредотачиваться на EF, а скорее демонстрирует больше MVC в играх. Я лично думаю, потому что Microsoft отстаивает методологию Code First над другими:)
-Если его хорошая практика создавать классы друзей, почему я не могу найти много учебников, показывающих это для MVC 3? У Buddy Classes другое имя для моделей? И почему я не могу найти какие-либо руководства от Microsoft, показывающие, что эти модели друзей/просмотров используются с MVC 3?
-Я пытался сделать базовое соотношение 1 к 1 между двумя таблицами. Сначала в модели вам нужно установить ключи идентификации каждой таблицы в одно и то же поле, а не использовать FK в одной из таблиц, что может немного запутать, когда у вас есть 3 или более таблицы, связанные друг с другом 1 к 1 отношениям, В коде сначала используется способ создания модели и вручную настраивать ее. Я думаю, что в MF вы можете изменить отношения, перейдя в XML, который я вообще не хочу делать.
-Подробная поддержка/помощь по первым проблемам кода
Причины, по которым я не решаюсь использовать подход Code First:
-Им начинающий кодер.
- Мне кажется, что довольно сложно отслеживать таблицы и отношения по мере расширения проекта.
-Нет диаграммы модели, и я должен сказать, что мне действительно нравится эта идея.
-Маширование объектов в базу данных через классы конфигурации я считаю невозможным:).
-Удаление таблицы потребует изменения кода и БД. В модели сначала только одно изменение модели, которое автоматически обновит БД и код, сказав, что если вы используете классы друзей, возможно, вам придется их также обновить.
Кроме того, теперь я вижу, что люди несколько сочетают Code First и Database, которые сначала подходят, поскольку вы не позволяете Code First генерировать вашу базу данных, а вручную создавать базу данных и использовать первый API API для EF, чтобы добраться до него.
Моя голова крутится со всеми вариантами и недостатками, а также за и против. Я просто хочу заняться созданием своего сайта и не размышлять над тем, какой подход принять. Может ли кто-нибудь дать мне некоторое представление о том, какой подход, по их мнению, лучше всего основан на том, что сказал Ive, и/или что, по их мнению, будет более основным потоком в будущем?
Большое спасибо dave