代码之家  ›  专栏  ›  技术社区  ›  Hooman Limouee

实体框架不在App_Data中创建数据库

  •  0
  • Hooman Limouee  · 技术社区  · 8 年前

    我正在开发一个web api,我需要在App_Data文件夹中有一个本地数据库,我首先使用实体框架代码,但它不会在App-Data中创建数据库

    这是我的连接字符串:

      <connectionStrings>
        <add name="TestDBContext"
             connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=TestDB;Integrated Security=True;MultipleActiveResultSets=True;AttachDBFilename=|DataDirectory|TestDB.mdf;User Instance=True"
             providerName="System.Data.SqlClient" />
      </connectionStrings>
    

    我曾经在项目菜单中显示所有文件,等等

    但数据库正在中创建

    C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA
    

    我该如何解决这个问题?

    3 回复  |  直到 8 年前
        1
  •  1
  •   Steve Greene    8 年前

    是的,这是默认值。两种修复方法:

    1) 将连接字符串添加到上下文的构造函数:

    public ApplicationDbContext()
            : base("TestDBContext") { }
    

    2) 将默认连接工厂添加到配置中:

    <entityFramework> 
      <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"> 
        <parameters> 
          <parameter value="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=TestDB;Integrated Security=True;MultipleActiveResultSets=True;AttachDBFilename=|DataDirectory|TestDB.mdf;User Instance=True" /> 
        </parameters> 
      </defaultConnectionFactory> 
    </entityFramework>
    

    看见 https://msdn.microsoft.com/en-us/data/jj556606

        2
  •  0
  •   marc_s    8 年前

    通常,您需要将应用程序配置中的设置更改为“AttachDbFileName”,否则默认为SQL Server Express实例。通常,您可以将模式设置为“已连接”,然后修复此问题:

    <add name="ConnectionStringName"
         providerName="System.Data.SqlClient"
         connectionString="Data Source=(LocalDB)\v11.0;AttachDbFileName=|DataDirectory|\DatabaseFileName.mdf;InitialCatalog=DatabaseName;Integrated Security=True;MultipleActiveResultSets=True" />
    

    这是一个关于连接的MS页面: https://msdn.microsoft.com/en-us/library/jj653752(v=vs.110).aspx#sqlce \

    虽然我会认真地建议,如果这不是一个小型紧凑的应用程序,将有小的增长,你不做附加的数据库。这对于大规模应用程序的部署来说是一个坏主意,通常是一个糟糕的做法,除非您知道您的数据库通常都很小。只是我的两分钱。

        3
  •  0
  •   Hakan Fıstık MuriloKunze    7 年前

    通过安装Sql LocalDB解决的问题