2011-03-11 75 views
1

我正尝试以编程方式创建一个包含LINQ to SQL的数据库。无法以编程方式创建数据库文件(SQL Server 2008 R2 Express)

我试过(以下this):

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

但我得到的SQLException“具有相同名称的数据库不存在,或者指定的文件无法打开,或它位于UNC共享。”

然而,单元测试,我创建了一个数据库,通过以下方式(确保我有每个测试空DB):

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

这工作得很好。我的问题是我没有看到第一种方法的区别。问题可能与this有关,但建议的解决方案不起作用。

任何提示?

编辑

如果我只是跳过()步它的工作DatabaseExists,但我需要检查,如果有已经是一个分贝。

+0

'factory.CreateDatabase()'和'db.CreateDatabase()'有什么区别? – Peter 2011-03-11 08:35:57

+0

当然应该是db.CreateDatabase():)。 EDITED – Simon 2011-03-11 08:39:29

+0

什么情况下运行的第一块代码?它是asp.net(MVC?),如果是的话,它是在Web Dev,IIS,IIS express下运行吗? – 2011-03-11 08:46:55

回答

0

如何:动态创建数据库(LINQ到SQL)

How to create DB in Linq to sql

你尝试先删除创建的第一个DB?并再次运行该方法?

为什么你要在本地创建数据库,你还使用sql server连接它吗? 您可以改为使用sql lite或sql server ce数据库。

问候!

+0

不幸的是,这并没有什么帮助,因为我已经在我的发帖中说过我试过了在这个Howto中描述。顺便说一句:你的链接被破坏了 – Simon 2011-03-11 08:37:50

相关问题