VS / EF忽略App.config中的MSSQLLocalDB设置

时间:2016-03-24 19:05:09

标签: entity-framework visual-studio-2015 connection-string

我以前安装过SQL Server 2008 R2和VS 2015.我正在使用EF(6.1.3)创建一些控制台应用程序,并添加了如下连接字符串:

<connectionStrings>
    <add name="DefaultConnection" 
         connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=EFTest2.mdf;Initial Catalog=EFTest2;Integrated Security=True"
         providerName="System.Data.SqlClient" />
</connectionStrings>

(LocalDb)\MSSQLLocalDB实例(v12.0.2000)

下正确创建了一个数据库

(虽然我注意到了两个特点:

  1. 如果我在连接字符串中重命名数据库,则EF不会使用新名称创建新数据库,并且

  2. EF自动将上下文名称附加到DB文件,例如EFTest2.MyContext.mdf。这些可能与当前的问题有关......)

  3. 然后我安装了SQL Server 2014和工具(SSMS)。重新启动PC后,现在如果我使用与上面相同的连接字符串,则会在USER-PC\SQLEXPRESS(v10.0.2531)下创建数据库。因此VS忽略(LocalDb)\MSSQLLocalDB部分,但仍然创建具有连接字符串中指定名称的DB。

    任何人都能解释一下吗?

    (我创建DbContext而没有指定连接字符串。我发现如果我指定连接字符串,那么VS会跟随连接字符串中包含的所有信息)

1 个答案:

答案 0 :(得分:0)

我刚刚遇到了类似的问题,在我的情况下,我们将实体框架添加了自己的附加配置,其中包含实例名称:

entityFramework/defaultConnectionFactory

对我来说没有意义,为什么在连接字符串中指定了istance名称时添加它,但如果此部分中的isntance名称不同,那么它将使用它而不是连接中的localdb instace名称字符串。