MVC 4 не может выполнять строительные леса

Я новичок в MVC, и на самом деле я намерен изучить технику «Code First», используя MVC 4. Я прошел несколько руководств по «MVC 4 Entity Framework», и, без сомнения, руководства действительно просты и понятны. но для каждого урока, которому я следовал,

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

часть у меня не работает. Должен ли я добавить модель платформы ADO.net Entity в проект и сначала спроектировать объекты базы данных? или я что-то упускаю? Прошло более 15 дней, и я застрял.

(Сначала я пытался создать базу данных вручную, и она работала отлично. Но я хочу узнать, как описано в учебниках, что базы данных создаются автоматически, если мы упомянем строку подключения, и EntityFramework узнает, что путь на самом деле не содержит такой базы данных , поэтому он создает один).

Я прошел через несколько руководств, скажем, следую ЭТОТ. (Я использую Visual Studio Express для Интернета 2012, EF 5.0.0)


person Zeeshan    schedule 22.12.2013    source источник


Ответы (2)


Ваш вопрос: нужно ли добавлять модель платформы ADO.net Entity в проект и сначала разрабатывать объекты базы данных?

да, при первом подходе к коду вам нужно сообщить инфраструктуре сущности, какие таблицы вы собираетесь создать, вы делаете это, создавая классы poco (обычный старый объект CLR). затем во время выполнения структура сущности создаст модель (ведьма - это файл xml) и сгенерирует запрос в соответствии с этим файлом xml, а затем выполнит его. вы можете узнать больше об этом в [CSDL MSL CSDL][1]

так что для сводки вы пишете свои классы домена (классы poco), и ef создаст для вас db, но, кстати, есть еще один способ, когда в коде структуры объекта первая ведьма называется [Сначала код для существующей базы данных] [2]

[2]: http://weblogs.asp.net/scottgu/archive/2010/08/03/using-ef-code-first-with-an-existing-database.aspx реконструирует базу данных и создать модель для вас.

person SHM    schedule 22.12.2013
comment
Спасибо Хасан. Я мог бы работать с моделью базы данных. но я хотел попробовать сначала код. но когда я добавляю строку подключения в web.config (имя такое же, как у класса, который наследует DBContext)., EF не создает никакой базы данных. Даже мои операции CRUD создаются автоматически, но не db. вы можете предположить причину? - person Zeeshan; 08.01.2014
comment
Вы вызываете конструктор базового класса в своем dbcontext? - person SHM; 08.01.2014
comment
Идеально! мне не хватало базового конструктора. Я предполагал, что достаточно будет сохранить имя класса имени моего соединения. я был неправ. Спасибо. - person Zeeshan; 22.01.2014

Нужно ли добавлять в проект модель ADO.net Entity framework и сначала разрабатывать объекты базы данных?

На самом деле это более традиционный подход, метко названный подходом, ориентированным на базу данных. Подход code-first является альтернативой первому. Они имеют в виду именно то, что говорят. В случае code-first сначала пишется код, и фактически база данных генерируется автоматически. В подходе к базе данных сначала создается база данных, после чего вы можете использовать EF для автоматического создания кода, необходимого для работы с базой данных, в основном CRUD и управления соединениями.

Встроенный скаффолдер в ASP.NET MVC должен нормально работать как в коде, так и в базе данных, если ваши модели уже установлены в вашем проекте. Если вы находите сгенерированный код слишком упрощенным, вы можете использовать альтернативный скаффолдер CamoteQ — это онлайн-платформа ASP.NET MVC. инструмент создания каркаса, основанный на принципах DDD и признанных шаблонах.

person Ronald    schedule 26.12.2013
comment
Спасибо Хасан. Я мог бы работать с моделью базы данных. но я хотел попробовать сначала код. но когда я добавляю строку подключения в web.config (конечно, имя такое же, как у класса, который наследует DBContext)., EF не создает никакой базы данных. Даже мои операции CRUD создаются автоматически, но не db. вы можете предположить причину? - person Zeeshan; 08.01.2014