我正在测试代码的首次运行方式。这是我定义上下文的方式
public class EfDbContext: Context
{
public DbSet<Client> Clients { get; set; }
}
我没有创建任何数据库,但我能够完成所有CRUD操作。
现在我在web.config中看不到连接字符串。我没有看到数据库。我已经检查了App_Data目录以及Sql Server Express。我没有看到任何创建数据库的痕迹。
然而,一切都很完美。
答案 0 :(得分:4)
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”。我们将研究改变这种情况的方法 稍后在演练中。