我正嘗試以編程方式創建一個包含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,但我需要檢查,如果有已經是一個分貝。
'factory.CreateDatabase()'和'db.CreateDatabase()'有什麼區別? – Peter 2011-03-11 08:35:57
當然應該是db.CreateDatabase():)。 EDITED – Simon 2011-03-11 08:39:29
什麼情況下運行的第一塊代碼?它是asp.net(MVC?),如果是的話,它是在Web Dev,IIS,IIS express下運行嗎? – 2011-03-11 08:46:55