【问题标题】:Code first: Where's the connection string & the Database?代码优先:连接字符串和数据库在哪里?
【发布时间】:2011-10-08 14:55:26
【问题描述】:

我正在测试代码首先是如何工作的。这是我定义上下文的方式

public class EfDbContext: Context
{
  public DbSet<Client> Clients { get; set; }
}

我没有创建任何数据库,但我能够完成所有的 CRUD 操作。

现在我在 web.config 中看不到连接字符串。我也没有看到数据库。我检查了 App_Data 目录和 Sql Server Express。我没有看到创建数据库的任何痕迹。

然而,一切都很完美。

【问题讨论】:

    标签: ef-code-first


    【解决方案1】:

    EF 代码优先将使用与您的数据库上下文同名的连接字符串 - 因此您可以这样定义它:

    <connectionString>
       <add name="EfDbContext" 
            connectionString="server=YourServer;database=YourChoice;Integrated Security=SSPI;" />
    </connectionString>
    

    默认情况下不会创建数据库,直到您实际执行某些操作,例如它应该会在您第一次拨打 EfDbContext.SaveChanges() 时出现。

    如果您尚未定义自己的自定义连接字符串,它将被称为与您的数据库上下文 (YourNamespace.EfDbContext) 相同的名称,并且它应该显示在您的默认本地 SQL 实例中。

    ADO.NET EF 4.1 Code First Walkthrough

    我的数据在哪里?

    DbContext 按照惯例为您创建了一个数据库 本地主机\SQLEXPRESS。数据库以全限定名命名 您的派生上下文的名称,在我们的例子中是 “CodeFirstSample.ProductContext”。我们将寻找改变这种情况的方法 稍后在演练中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-10
      • 2015-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-02
      相关资源
      最近更新 更多