2012-05-01 2 views
0

Итак, я работаю над проектом ASP.NET для университета. Мы должны загрузить наш код на сервер с IIS и SQL Server 2008. Я написал свой проект с использованием MVC Code-First EF. Я понимаю, что для системы Entity Framework требуется разрешение на правильную работу базы данных (вы не можете просто предоставить ей пустую базу данных и заполнить ее данными). Это создало проблему для меня, так как у меня нет прав на создание базы данных на общем сервере SQL Server. Есть ли способ обойти это?ASP.NET MVC Code-First EF - Можно использовать EF без создания базы данных?

ответ

0

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

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

Смотрите этот ответ: How do I create a migration for an existing database in EntityFramework 4.3?

.. которые включают в себя эту хорошую связь с начала работы с EF Миграции: http://thedatafarm.com/blog/data-access/using-ef-migrations-with-an-existing-database/

Все это доступно через NuGet, и если у вас есть доступ к контенту Pluralsight, я могу очень рекомендую видео Джули Лерман по этой теме.

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

2

Поскольку у вас нет разрешений, похоже, вам нужно будет получить DBA для создания своей базы данных на сервере, на котором вы пытаетесь развернуть, - это может быть сделано либо с помощью сценария создания базы данных, либо из резервное копирование базы данных db на вашей машине dev. Затем вы можете сначала проинструктировать EF-код, чтобы не пытаться автоматически создавать или обновлять базу данных, добавив эту строку в ваш global.asax (или даже где-нибудь перед первым доступом к базе данных).

Database.SetInitializer<YourContextType>(null); 
Смежные вопросы