2012-03-06 23 views
0

我正在從web.config中下載(從信譽良好的源代碼)下載(.net4/mvc3)解決方案文件,但沒有看到明確的說明創建數據庫,沒有包含'.mdf'。我第一次構建時,我得到了一個關於缺少CREATE數據庫權限的運行時錯誤。所以我創建了一個空白數據庫,並確保該字符串引用了一個SQL用戶,該用戶對剛剛創建的數據庫具有.dbo/owner權限。瞭解VS在第一次運行時創建數據庫的能力

但後來的版本似乎不執行相同的初始化數據庫腳本 - 存儲在哪裏。

創建數據庫的「首次使用」約定在哪裏記錄?

thx

回答

0

這是Entity Framework Code First的一個特性。我不確定你在找什麼,但是尋找「EF代碼第一初始化策略」可能會有所幫助。

例如閱讀這篇文章:EF Code First DB Initialization Using Web.Config

+0

該項目是Code First - 它在我第一次運行時失敗的唯一原因是連接字符串指定了一個用戶名/密碼,我創建了該用戶名/密碼但未授予'createdb'權力。謝謝 – justSteve 2012-03-06 23:23:59

0

我假設你正在談論實體框架,它可以讓你從一個ObjectContext對象,這是在任何EF三種方法中使用的一個實例創建數據庫(數據庫,模型和代碼優先)。

找一條實際上叫做ObjectContext.CreateDatabase()的線。如果使用了支持的ADO.NET提供的其中一種(SQL Server或SQL Server CE 4.0),則會生成所需的SQL語句。假設經典羅斯文例如,你可能會發現類似的東西:

NorthwindContext context = new NorthwindContext(); 
if (!context.DatabaseExists()) 
{ 
    context.CreateDatabase(); 
} 

如果這其實就是一個代碼優先應用,「lalibi」是對有關初始化策略,在默認情況下不要求你明確創建數據庫。 (但我的猜測是,它實際上使用了一個與我的內部非常相似的聲明)。

相關問題