0

这些是我使用 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 上而不是在进程中运行?

4

1 回答 1

1

好的,我想通了,感谢“Programming Entity Framework: Code First”一书,显然这是配置场景的约定,对于要获取的查询字符串,它的名称需要与 Context 类的名称相匹配(您从 DbContext 继承的那个)。因此我需要添加新的连接字符串,如下所示:

<add name="Context" connectionString="Data Source=.\SS2012EXPRESS;Initial Catalog=HomeLibrary;Integrated Security=True" providerName="System.Data.SqlClient" />

原始连接字符串可以保持原样,运行时不使用。我不完全确定它的目的是什么。

于 2012-12-30T03:47:44.053 回答