Создать БД - нет опции выполнения SQL?

Я пытался следовать нескольким руководствам о том, как создать БД, используя первый подход модели в MVC. Я дошел до создания объектов в дизайнере и попытался создать БД из модели. Он отлично создает файл SQL, но я не могу его выполнить? У меня нет возможности сделать это? Когда я щелкаю файл правой кнопкой мыши, опция выполнения недоступна, а когда я открываю файл и щелкаю правой кнопкой мыши в контексте, опция недоступна. Я попытался подключиться к пустой БД, а затем создать Entity Model в этой БД с объектами модели, а затем попытаться создать БД из модели, но до сих пор нет возможности выполнить sql из VS2010 Express. Есть ли причина, по которой его нет?

Вопрос 2 Мне нравится использовать подход «сначала модель», поскольку я нахожу графическое представление всех сущностей и их взаимосвязей простыми для понимания, и мне нравится тот факт, что все классы доступа C# Db создаются одним нажатием кнопки. Однако в большинстве примеров для MVC 3, похоже, используется подход «сначала код». Есть ли большие преимущества в использовании сначала кода, а не модели? какой подход легче понять? Я пришел из базы данных БД, и когда я делал некоторое кодирование asp назад, БД всегда были на месте сначала :)


person davey    schedule 24.04.2011    source источник


Ответы (2)


я смотрел первые учебные пособия по модели, и я не мог щелкнуть правой кнопкой мыши и выполнить sql, сгенерированный из модели данных объекта. Я нашел ответ в Интернете. Мне пришлось (1) удалить ключевое слово «GO» из всего файла sql, затем (2) удалить строку вверху с надписью «USE... blah blah», затем (3) щелкнуть правой кнопкой мыши по базе данных mdf в окно проводника базы данных и нажмите «новый запрос» (4), замените слова «выбрать из бла-бла» в новом окне запроса моим исправленным кодом sql. (5) когда я щелкнул правой кнопкой мыши в новом окне запроса, СЕЙЧАС у меня была возможность выполнить sql. Он выдал предупреждение, но затем сказал, что он успешно завершен (и после всего этого он работал так же, как в видео). В статье, которую я нашел http://www.telnet80.com/2010/09/fixing-entity-framework-model-first-sql.html

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

person publicidentity1    schedule 25.05.2011

Объявление 2. Ни один из трех возможных способов работы с EF не дает больших преимуществ (сначала код, сначала БД, сначала модель). Они существуют, чтобы соответствовать разным сценариям и разным пользователям, на самом деле.
Лично мне нравится код, когда я начинаю новый проект, потому что я могу быстрее подготовить свои сущности, написав классы. Это хороший и быстрый способ создания прототипов, но он становится немного сложнее, когда вам нужно создавать более сложные модели. Вы должны коснуться FluentAPI и узнать больше о соглашениях и т. д.

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

person Damb    schedule 24.04.2011
comment
Спасибо за ответ, одно преимущество, которое я где-то читал, заключается в том, что при использовании кода сначала нет необходимости в приятельских классах? Но в Model first и Db first, поскольку классы генерируются автоматически, возможно, придется использовать классы-приятели, чтобы добавить больше атрибутов, а также любые аннотации данных должны быть сделаны в классах-приятелях, что немного отстой, поскольку дополнительные классы-клоны удваивают код. Похоже, что в любом случае я буду использовать первый подход с кодом, так как я не могу создать БД из файла SQl объекта модели, если кто-то не может сказать мне, почему у меня нет опции выполнения sql :( - person davey; 24.04.2011
comment
Да, в самом деле. Вы можете легко сначала аннотировать свои классы в коде, не делая их частичными. Но этот конкретный аспект, на мой взгляд, не является проблемой. Это может создать больше файлов, но это очень полезно с новыми вещами, такими как новый MvcScaffolding. Я создаю базовую структуру своего приложения из Scaffolding и не хочу воссоздавать свои специальные методы в контроллерах и т. д., поэтому я могу использовать для этого частичное, а затем вы можете воссоздать/переписать контроллер с помощью скаффолдинга без больших потерь. Это просто пример.. это опять же зависит от ситуации, но делать партиалы не так уж и плохо. - person Damb; 24.04.2011
comment
Спасибо, дамп, знаете ли вы или есть какие-нибудь примеры сценариев, в которых сначала используется модель, а не код, и наоборот? Также есть идеи, почему я не могу выполнить сгенерированный файл SQl? - person davey; 25.04.2011
comment
Ну... модель сначала — это в основном то же самое, что и код сначала, но для людей, которым нравится проектировать свою модель визуально, а не жестко кодировать ее. Между этими двумя, вероятно, нет никакого другого фактора. Это действительно вопрос ваших предпочтений. Вы должны принять это как возможные решения... затем вы выбираете, какое из них вам нравится. Объявление вашего первого вопроса: я плохо понимаю, что именно вы пытаетесь сделать. И я в последнее время не работал ни с чем, кроме кода, поэтому, вероятно, не могу с этим помочь. - person Damb; 25.04.2011
comment
Спасибо за вашу помощь, демпф, я попытаюсь сначала опубликовать свой первый вопрос о модели и выполнить сгенерированный файл sql в новом потоке. - person davey; 25.04.2011