2011-03-11 213 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

相關問題