这是我使用Entity Framework Code First工作流程的第一步,所以也许我错过了一些简单的东西。我创建了继承自DbContext
的上下文类public class Context : DbContext
{
public DbSet<Book> Books { get; set; }
public DbSet<Author> Authors { get; set; }
}
我在控制器代码中执行它:
var author = new Author()
{
FirstName = "Julia",
LastName = "Lerman"
};
using (var context = new Context())
{
context.Authors.Add(author);
context.SaveChanges();
}
我没有为EF设置的其他代码或配置。 当我启动应用程序并在控制器中命中代码时,一切正常,唯一的问题是数据库实际上不是在SQL Server中创建的,而是在本地运行。这意味着我不能真正使用SQL Server管理工作室来检查我的应用程序运行时的数据,我想这样做。
我发现在web.config中自动添加了以下键:
<add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=false;" providerName="System.Data.SqlClient" />
如何修改此配置密钥(或者还有其他我需要做的事情)以确保此数据库将在实际的SQL Server Express上运行而不是在进程中运行?
答案 0 :(得分:1)
好吧,我想通了,感谢“编程实体框架:代码优先”一书,显然它是配置方案的约定,对于要获取的查询字符串,它的名称需要匹配的名称Context类(从DbContext继承的类)。 因此我需要添加如下所示的新连接字符串:
<add name="Context" connectionString="Data Source=.\SS2012EXPRESS;Initial Catalog=HomeLibrary;Integrated Security=True" providerName="System.Data.SqlClient" />
原始连接字符串可以保持原样,不用于运行时。我不完全确定它的目的是什么。