2011-05-12 136 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