3

我正在啓動一個新的ASP.NET項目,並且正在嘗試遵循multi-project approach I've seen mentioned in multiple questions around Stackoverflow在MVC3應用程序中創建單獨的DAL項目

我成功地設置了連接字符串(我認爲),將其放置在我的表示層的Web.config文件中。

<add name="MyDbContext" connectionString="Data Source=|DataDirectory|MyDb.sdf" providerName="System.Data.SqlServerCe.4.0"/> 

但是,當我從BLL運行下面的代碼時,沒有創建數據庫。

using (var db = new MyDbContext()) 
{ 
    db.MyEntities.Add(new MyEntity() 
    { 
     EntityName = "Entity 1" 
    }); 
    db.SaveChanges(); 
} 

那麼首先,在哪裏創建實際的sdf文件?我假設在我的DAL項目中。其次,是否有任何進一步的配置需要執行才能使其正常工作?指導教程的鏈接將會非常出色。

我試過以下this教程,但我的DAL項目沒有Global.asax文件,我可以使用它。

回答

2

將在哪裏創建實際的sdf文件?

它將在表示層中創建。確保你有一個App_Data子文件夾。這是我第一次嘗試它時的那點點。另外請確保您在解決方案資源管理器中打開Show all files或打開Windows資源管理器到App_Data子文件夾以查看它出現在那裏。

但我的DAL項目沒有Global.asax文件,我可以隨身攜帶。

Global.asax生活在表示層中,而不是在DAL中。您提到的教程問題是它只使用一個項目。在現實世界中,您可能會將其分散到多個項目,典型的ASP.NET(MVC)項目和幾個基於類庫的模板項目。這導致事情被放在正確的項目中。

+0

果然。我可以發誓我的演示文稿項目中的我的App_Data文件夾是空的。但在Windows資源管理器中查看它顯示,否則,現在它顯示在VS.快速後續問題,如果不通過Global.asax文件,我如何引用種子方法? –

+0

只需爲該問題制定一個新線索並在評論中指出。新問題值得專注。 – XIII

+0

新線程位於[這裏](http://stackoverflow.com/questions/12200086/seeding-ef-database-in-a-separate-dal-project) –

1
  1. |DataDirectory|是一個在您的web項目中評估爲~/App_Data/的宏。因此請在path/to/your/project/App_Data/MyDb.sdf中查找您的.sdf文件。
  2. 您需要將您在App.config中添加的任何其他設置複製到Web.config。
相關問題