【问题标题】:MVC 4 Creates a new database instead of using the one specified in web.config fileMVC 4 创建一个新数据库,而不是使用 web.config 文件中指定的数据库
【发布时间】:2013-06-06 23:55:38
【问题描述】:

我创建了一个新的 MVC 4 项目,构建并运行 -> 全部成功

尝试登录 -> 在 SQL Express 中创建新数据库(数据库名称:xyz)=> 到目前为止一切顺利...

现在,我想在 SQL Express 中添加一个名为“ABCD”的新表(到上面的 xyz 数据库)。如何在 Visual Studio 解决方案中访问此表?没有实体框架模型可以去手动更新吗?

不过,我在 Models 文件夹中添加了一个名为 ABCD 的类

使用新的Data Context Class 为 ABCD 创建了一个新控制器,但是当我运行解决方案时,它创建了一个新的数据库,而不是使用 Web.config 文件中提到的默认数据库

有人可以告诉我如何通过详细步骤解决此问题吗?

这是我的 DataContext 类:

使用 System.Data.Entity;

命名空间_1024.Models { 公共类_1024Context:DbContext { // 您可以在此文件中添加自定义代码。更改不会被覆盖。 // // 如果您希望实体框架删除并重新生成您的数据库 // 每当您更改模型架构时自动添​​加以下内容 // 代码到 Global.asax 文件中的 Application_Start 方法。 // 注意:这将在每次模型更改时破坏并重新创建您的数据库。 // // System.Data.Entity.Database.SetInitializer(new System.Data.Entity.DropCreateDatabaseIfModelChanges<_1024.models._1024context>());

    public _1024Context() : base("name=_1024Context")
    {
    }

    public DbSet<ABCD> ABCDs { get; set; }
}

}

这是 Web.config 文件:

<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />


</configSections>
  <connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=aspnet-_1024-20130606134952;Integrated Security=SSPI"
      providerName="System.Data.SqlClient" />
    <add name="_1024Context" connectionString="Data Source=.\SQLEXPRESS; Initial Catalog=_1024Context-20130606135301; Integrated Security=True; MultipleActiveResultSets=True"
      providerName="System.Data.SqlClient" />
  </connectionStrings>

【问题讨论】:

  • 您是否将ABCD 添加到Data Context Class 作为DbSet? ,您应该发布您的 Data Context Class 的代码

标签: asp.net-mvc-4


【解决方案1】:

如果您想使用现有数据库,则不应使用新的连接字符串。在您的连接字符串中,您有两个不同的初始目录,这意味着两个不同的数据库。

【讨论】:

    【解决方案2】:

    试着在没有“name=”的情况下这样写。这对我有用。

    public _1024Context() : base("_1024Context")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-01
      • 2015-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多