Entity framework 4 实体框架代码首先不';t生成数据库

Entity framework 4 实体框架代码首先不';t生成数据库,entity-framework-4,Entity Framework 4,我创建了一个db上下文类,并按照Scott Guthrie的说明在web.config文件中添加了一个连接字符串。我用一种测试方法运行它。在运行测试时,我收到了几个数据库错误,但是当我最终清理了类以便测试成功时,App_data文件夹中仍然没有数据库 我将Database.CreateIfNotExists()添加到dbContext构造函数中,但仍然没有sdf文件。有人知道我做错了什么吗?要自动创建数据库,连接字符串名称必须与DbContext子类名称(带名称空间)完全相同 假设你的DB类是这

我创建了一个db上下文类,并按照Scott Guthrie的说明在web.config文件中添加了一个连接字符串。我用一种测试方法运行它。在运行测试时,我收到了几个数据库错误,但是当我最终清理了类以便测试成功时,App_data文件夹中仍然没有数据库


我将Database.CreateIfNotExists()添加到dbContext构造函数中,但仍然没有sdf文件。有人知道我做错了什么吗?

要自动创建数据库,连接字符串名称必须与DbContext子类名称(带名称空间)完全相同

假设你的DB类是这样的:

名称空间MyNamespace
{
公共类FooDb:DbContext
{    
公共数据库集ABC{get;set;}
}
}
您的连接字符串应如下所示:


检查SQL Server Management Studio->。\sqlexpress


这就是CF在我没有指定连接字符串的情况下放置我所有数据库的地方。

请参见此处,了解如何使用EF 4.1和SQL CE NuGet包(或新的MVC 3项目)自动创建.sdf:


长话短说:创建一个空的应用程序数据文件夹-sdf是自动创建的,但仅当它所进入的文件夹存在时

确保dbcontext使用正确的连接字符串 类似的东西

public class DBContext : IdentityDbContext<ApplicationUser>
    {
        public DBContext ()
            : base("DefaultConnection", throwIfV1Schema: false)
        {
        }
}
public类DBContext:IdentityDbContext
{
公共DBContext()
:base(“DefaultConnection”,throwifvv1schema:false)
{
}
}
和在web.config中

<add name="DefaultConnection" connectionString="Server=....;Connection Timeout=300;" providerName="System.Data.SqlClient" />


True,没有连接字符串,数据库是在web服务器工作目录中创建的。-1没有解释会伤害社区,特别是如果它们使合理的答案无效。这对我很有效,花了很长时间才弄明白。我回到一个没有提供答案的帖子,并提供了我所发现的。那么为什么是负号呢?名称空间与否对我来说并不重要。