Не удается создать файл базы данных программно (SQL Server 2008 R2 Express) - PullRequest
1 голос
/ 11 марта 2011

Я пытаюсь создать базу данных с помощью LINQ to SQL программно.

Я пытался (следующий этот ):

MySQLSvrDb db = new MySQLSvrDb(@"c:\mydb.mdf");
if (!db.DatabaseExists())
{
    db.CreateDatabase();
}

Но я получаю SQLException «База данных с таким же именем существует, или указанный файл не может быть открыт, или он находится на общем ресурсе UNC».

Однако для модульных тестов я создал базу данных следующим образом (убедившись, что у меня есть пустой БД для каждого теста):

MySQLSvrDb db = new MySQLSvrDb(@"C:\testdb.mdf");
if (db.DatabaseExists())
{
    Console.WriteLine("Deleting old database...");
    db.DeleteDatabase();
}
db.CreateDatabase();

Это отлично работает. Моя проблема в том, что я не вижу разницы с первым подходом. Возможно, проблема как-то связана с этим , но предложенные решения не сработали.

Есть какие-нибудь намеки?

EDIT

Если я просто пропущу шаг DatabaseExists (), он работает, но мне нужно проверить, есть ли уже Db.

1 Ответ

0 голосов
/ 11 марта 2011

Как: динамически создать базу данных (LINQ to SQL)

Как создать базу данных в Linq to sql

Пытались ли вы сначала удалить первую созданную базу данных?и снова запустите метод?

Почему вы создаете базу данных локально, вы все еще подключаете ее с помощью сервера sql?Вместо этого вы можете использовать sql lite или sql server ce DB.

С уважением!

...