2011-10-08 127 views
4

我正在测试代码如何工作。以下是我如何定义上下文的方法代码优先:连接字符串和数据库在哪里?

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

我没有创建任何数据库,但是我能够执行所有CRUD操作。

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

然而,一切都是完美的。

回答

4

EF代码优先将使用具有相同的名称为您的数据库上下文的连接字符串 - 所以你可以这样定义它:

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

该数据库将不会被默认创建的,直到你实际上做一些事情,例如它应该在您第一次拨打EfDbContext.SaveChanges()时立即出现。

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

ADO.NET EF 4.1 Code First Walkthrough见:

哪里是我的数据?

的DbContext通过公约 本地主机\ SQLEXPRESS创建的数据库为您服务。数据库以派生上下文的标准 名称命名,在我们的示例中为 “CodeFirstSample.ProductContext”。稍后将在演练中讨论如何更改此 。

相关问题