Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework VS/EF忽略App.config中的MSSQLLocalDB设置_Entity Framework_Visual Studio 2015_Connection String - Fatal编程技术网

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

Entity framework VS/EF忽略App.config中的MSSQLLocalDB设置,entity-framework,visual-studio-2015,connection-string,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=EFT

我以前安装过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)下正确创建数据库

(尽管我注意到了两个特点:

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

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

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

    有人能解释一下吗


    (我是在未指定连接字符串的情况下创建
    DbContext
    的。我发现,如果我指定连接字符串,那么VS将遵循连接字符串中包含的所有信息)

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

    entityFramework/defaultConnectionFactory
    

    我不明白为什么在连接字符串中指定了istance名称时会添加此名称,但如果此部分中的istance名称不同,那么它将使用该名称,而不是连接字符串中的localdb Instance名称。

    我刚刚遇到一个类似的问题,在我的情况下,我们的实体框架会添加自己的名称具有实例名称的其他配置:

    entityFramework/defaultConnectionFactory
    

    在连接字符串中指定istance名称时,为什么要添加此名称对我来说毫无意义,但如果此部分中的ISnance名称不同,则它将使用该名称,而不是连接字符串中的localdb Instance名称。

    首先,是否确实安装了实例名为MSSQLLocalDB的LocalDb实例?您可以在SQL Server对象资源管理器中查找instanceYes。另外,如果我在PM控制台中键入
    sqllocaldb I
    ,我会得到
    MSSQLLocalDB,ProjectsV12,v11.0
    。我甚至没有得到v10.0的结果。首先,您确定安装了实例名为MSSQLSLOCALDB的LocalDb实例吗?您可以在SQL Server对象资源管理器中查找instanceYes。另外,如果我在PM控制台中键入
    sqllocaldb I
    ,我会得到
    MSSQLLocalDB,ProjectsV12,v11.0
    。我甚至没有得到v10.0的结果。