【问题标题】:How do I enforce LocalDB to use the same database (across projects&entities)?如何强制 LocalDB 使用相同的数据库(跨项目和实体)?
【发布时间】:2017-02-20 21:22:32
【问题描述】:

我在正确配置 LocalDB 时遇到问题。这是设置:

  • 项目“DataAccess”,包含启用代码优先迁移的 EF6 DbContext。没有 app.config,而是通过 StartUpProject 参数引用下面的项目。
  • 项目“Web”,一个包含以下连接字符串的 MVC 应用程序:

在数据项目中调用Update-Database时,会在MVC项目的App_Data目录下创建一个MDF文件DataAccess.DataContext.mdf。这是第一个问题,因为这不是我对上述配置的期望。

第二个问题是,当实际启动 MVC 应用程序并访问数据库时,会创建另一组 MDF 文件。在我的情况下,这将导致另外两个文件:

  • DataAccess.DataContext`1[Entity1].mdf
  • DataAccess.DataContext`1[Entity2].mdf

所以现在我的数据分散在一堆文件中,当然这完全没用。谁能指出我在这里缺少的正确方向?

【问题讨论】:

    标签: sql-server entity-framework connection-string localdb


    【解决方案1】:

    好的,在安装 SQL Express 并遇到基本相同的问题后,我找到了解决方案。我已将连接字符串名称添加到我的 DbContext 实现中,现在它正在工作:

    public class DataContext : DbContext
    {
        public DbSet<Entity1> SomeEntities { get; set; }
    
        public DataContext() : base("name=DatabaseConnectionString")
        {
    
        }
    }
    
    <connectionStrings>
        <add name="DatabaseConnectionString" 
             connectionString="Data Source=(LocalDB)\MSSQLLocalDB;Initial Catalog=MBLux.CAP;Integrated Security=True;" 
             providerName="System.Data.SqlClient" />
    </connectionStrings>
    

    【讨论】:

      猜你喜欢
      • 2020-02-05
      • 1970-01-01
      • 2018-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-25
      • 2013-11-28
      • 2011-01-14
      相关资源
      最近更新 更多