23

我正在开发 WPF 中的桌面应用程序并使用LocalDB创建 SqlRepository来存储数据。我正在使用以下工具

  • 带有更新 2 的 Visual Studio 2013 社区
  • 用于代码优先迁移的实体框架 6.1.2

我已经使用 Microsoft SQL Server 数据库文件 (SqlClient) 配置创建了本地数据库。数据库创建成功,下面是从 Sql 获取的连接字符串

Data Source=(LocalDB)\v11.0;Initial Catalog=D:\USERS\USERNAME\DOCUMENTS\TestDatabase\testdb.MDF;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False

我在 app.config 中使用相同的连接字符串。我可以在 Visual Studio 的 SQL Server 数据库资源管理器中查看数据库对象。但是在 Nuget 包管理器控制台中运行 update-database 命令时,出现以下错误:

建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例)

4

10 回答 10

66

当我将“启动项目”从另一个模块更改为包含对解决方案中所有其他项目的引用的模块时,我遇到了类似的问题并修复了它。右键单击模块>>单击“设置为启动项目”

于 2015-01-24T22:54:44.997 回答
9

迭戈的回答是正确的。

当标记为启动项目的项目中没有连接字符串时,会出现此问题。然后 EF 尝试连接到一些默认数据库引擎以执行更新。就我而言,它尝试使用 express,但由于某种原因它无法连接。并抛出了错误。

使用选项“-Verbose”运行“更新数据库”。其中一行显示使用了哪个 StartUp 项目。检查您在此项目中的连接字符串,或将启动项目更改为具有正确连接字符串的项目。这样就解决了问题。

于 2015-05-27T10:04:21.213 回答
3

我可以通过向 update-database 命令添加参数来解决这个问题:

update-database -StartupProjectName MyApp.Web -ConnectionStringName MyAppConnectStringInWebConfig
于 2017-11-15T16:34:47.960 回答
3

正如其他答案中所解释的,问题通常来自包管理器控制台中的初始项目错误。在我的情况下,控制台忽略了我在默认项目下拉列表中选择的值以及-StartUpProjectName参数,并重现了尝试连接到某些默认数据库引擎的错误行为,正如 Mikk 的回答所描述的那样,在我的情况下使用 SqlExpress引擎。

我的问题是由错误的解决方案配置引起的:如果您的解决方案有多个项目并且打算使用配置选项“多个启动项目”运行,但您只是从源代码控制存储库中下载了它,那么可能默认配置选项“单一启动项目”应用于解决方案(此配置值通常未在源代码控制中签入)。在这种情况下,包管理器控制台只是忽略在其组合中选择的启动项目,而只是应用解决方案中的默认启动项目,该项目可能没有连接字符串,如 Mikk 的回答中所指定。

所以我通过更改解决方案属性来修复它:Common properties//Startup project选择Multiple startup projects而不是Single startup project,然后包管理器控制台将接受项目名称并更新正确的数据库。

于 2015-10-26T14:59:59.473 回答
2

我解决了这个错误,将初始项目更改为实体项目。

看:

Update-Database -Verbose 使用启动项目“SCVE.Web”。<-- 这个 ir 错误使用 NuGet 项目“SCVE.EntityFramework”。

于 2015-01-20T17:33:59.297 回答
1

试试这个连接字符串:

<connectionStrings>
  <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=D:\USERS\USERNAME\DOCUMENTS\TestDatabase\testdb.MDF;Initial Catalog=testdb;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
于 2015-01-04T18:50:38.837 回答
1

建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例)

此错误消息通知您无法连接到SQL Server. 可能的原因及排除方法如下:

1) SQL Server 未启动。启动它将允许您在可用 SQL Server 的下拉列表中查看您的 SQL Server/实例。

  • 转到开始菜单 -> 控制面板 -> 管理工具 -> 服务。
  • 在服务列表中找到 SQL Server(实例名称,默认为 EZPARTS5)并检查其状态,它必须已启动
    (如果未启动,则右键单击 SQL Server 并
    从上下文菜单中选择启动)。

2) 防火墙阻止端口 1433(用于连接的 MSSQL 标准端口)。可以按照以下步骤禁用它:

  • 转到开始菜单 -> 控制面板 -> 管理工具 -> 服务。
  • 找到防火墙服务,它必须被禁用(如果没有,则右键单击该服务并从上下文菜单中选择停止)。

注意:更多信息可以在微软官方网站上找到:链接

3) MSSQL 协议禁用 TCP/IP 协议。要启用它,请参阅以下步骤:

  • 导航到“开始”菜单中的 SQL Server 配置管理器。
  • 在 SQL Server 配置管理器中指定 TCP/IP 协议的设置。
  • 重新启动计算机。

注意:更多信息可以在微软官方网站上找到:链接

4)确保您的数据库引擎配置为接受远程连接(如果您使用的是集中式数据库):

  • 打开 SQL Server 管理工作室。
  • 右键单击 SQL Server 实例 -> 属性 -> 连接 -> 选中允许远程连接到此服务器框。
  • 转到常规部分并检查名称字段中指定的 SQL Server 的名称。

5) 如果您使用的是命名 SQL Server 实例,请确保您在连接字符串中使用该实例名称。通常指定数据库服务器所需的格式是 machinename\instancename。

6) 确保您的登录帐户对您在登录时使用的数据库具有访问权限。替代方案:如果您仍然无法获得任何连接,您可能需要在服务器上创建一个 SQL 帐户,在相关数据库上创建一个相应的 SQL 用户,然后使用此用户名/密码登录数据连接到 SQL Server。

从此链接引用

于 2015-01-04T17:23:09.037 回答
1

如果您尝试连接到 Sql Server 而不是 localdb,请确保 web.config 文件中的默认连接工厂如下:

<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
  <parameters>
    <parameter value="Data Source=.\SQLEXPRESS2012; Integrated Security=True; MultipleActiveResultSets=True" />
  </parameters>
 </defaultConnectionFactory>
于 2016-04-05T06:46:52.667 回答
0
PM>Update-Database

error and solution which I did today in 4 hours. I am very much new in .net coding, but yes in PHP I have 10+ years experience. It took me 4 hours to solve this. 1.My first Mistake: I was not having Microsoft SQL Server 2019 in my laptop locally I was having this through AZURE which is not works for localhost, so I installed this locally after download, it took around 2 Hours. 2.Second changed mistake=

 "DevConnection": "Server=localhost;Database=PaymentDetailDB;Trusted_Connection=True;MultipleActiveResultSets=True;"

then it works for me

Error

Error solution

Error solved After error solved database

于 2020-10-29T14:35:40.347 回答
0

我在新创建的 ASP.NET 项目中遇到了同样的问题。

首先,我尝试如上所述设置启动项目。没有选择启动项目,我无法选择一个。

最终我将我的 Visual Studio 从 2015 Update 1 更新到 2015 Update 3 和

update-database

执行没有问题。

于 2017-08-01T13:28:15.700 回答