2011-05-12 139 views
2

我不打算在MVC網站中使用EF Code First。我期待在具有WPF客戶端的應用程序中使用它。如何在EF代碼優先中生成數據庫?

項目都設置爲

  • ContactManager.Core //包含所有
    實體(DLL)
  • ContactManager.Data //包含 在DataContext和其他數據 相關服務(DLL)
  • ContactManager.Services //業務
    組件(dll)
  • ContactManager.Client // WPF
    應用程序

我無法生成SQLExpress或SQLCE 4.0數據庫。我對緊湊版本db更感興趣。我沒有得到任何錯誤,除了我的單元測試失敗,因爲它試圖連接一個不存在的數據庫。

+0

我找到了這個問題的答案嗎?我正在嘗試在這裏做同樣的事! – 2011-10-20 22:07:18

+0

@GabrielMongeon:我還沒有找到一種方法來做到這一點.. – Perpetualcoder 2011-10-21 03:40:22

+0

我設法使用SQLExpress與本演練一起工作:http://blogs.msdn.com/b/adonet/archive/2011/03/08/ef -feature-CTP5碼先模型與 - 主從-WPF的application.aspx。現在我將弄清楚爲什麼需要使用它來處理SQLCE,我猜App.Config中的某些東西應該可以做到。我會及時向大家發佈! – 2011-10-21 13:47:54

回答

1

我找到了答案2個選項:

選項1:

在你的DbContext指定在基類的構造連接字符串:

public class RecetteContext : DbContext 
{ 
    public RecetteContext() 
     :base("<YourConnectionString HERE>") 
    { 
    } 

    public DbSet<Categorie> Categories { get; set; } 
    public DbSet<Recette> Recettes { get; set; } 

    } 
} 

選項2:

我用過的一個,你給連接字符串一個名字在的DbContext基類的構造:

public RecetteContext() 
    : base("RecettesDatabase") 
{   } 

而在你的app.config文件添加一個ConnectionString的名稱相同:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <connectionStrings> 
    <add name="RecettesDatabase" 
     connectionString="Data Source=RecettesDB.sdf" 
     providerName="System.Data.SqlServerCe.4.0"/> 
    </connectionStrings> 
</configuration> 

希望解決您的問題!

+0

謝謝加百列! – Perpetualcoder 2011-10-25 13:58:20