Использовать DataContext для создания схемы в существующем пустом файле базы данных? - PullRequest
0 голосов
/ 13 мая 2010

С DataContext и пустым файловой базой данных, которая уже существует , возможно ли написать классы контекста данных (т.е. те, которые я добавил дизайнеру) создать схему БД?

В контексте данных я вижу только следующие возможности:

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

Я ищу гибридное решение между этими двумя мирами.

Обновление 1 (дополнительная информация): Мое доказательство того, что существующая база данных не совместима с контекстом данных Операция CreateDatabase () - это ошибка

База данных 'C: ... \ App_Data \ IntermediateData.mdf' уже существует. Выберите другой имя базы данных.

на основе этого кода

using (IntermediateClassesDataContext intermediateContext = new IntermediateClassesDataContext(_getIntermediateConn())) {
    intermediateContext.CreateDatabase();
}

и используется эта запись web.config (очищенная для SO):

<connectionStrings>
    <add name="IntermediateData" providerName="System.Data.SqlClient" connectionString="Data Source=W500\SQLEXPRESS;AttachDbFilename=C:\Webapp\App_Data\IntermediateData.mdf;Integrated Security=True;User Instance=True"/>

... и упомянутая база данных уже существует на диске с соответствующими правами доступа.

Обновление 2 (уточнение):

Контекст и причины = Права доступа к файлам и безопасность

Я не хочу давать разрешение пользователю писать новые файлы в каталоге данных веб-сайта (что пытается сделать CreateDatabase); однако я не против, если пользователь может записать схему и данные в существующий файл данных. Если жизнеспособного решения не существует, я могу войти и открыть разрешения.

Что я сделал, чтобы создать здесь, так это создал группу новых классов на пустом холсте DataContext, как показано ниже. Они представляют схему, которую я хочу сохранить в существующей пустой базе данных:

альтернативный текст http://img8.imageshack.us/img8/5903/sampledm.png

1 Ответ

0 голосов
/ 15 мая 2010

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

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