Entity framework EntityFramework和更新数据库已停止工作
我首先使用EF和代码使一切工作正常,直到我更改了配置类以添加一些额外的种子数据,然后尝试了Entity framework EntityFramework和更新数据库已停止工作,entity-framework,ef-code-first,code-first,Entity Framework,Ef Code First,Code First,我首先使用EF和代码使一切工作正常,直到我更改了配置类以添加一些额外的种子数据,然后尝试了 Update-Database 现在我每次都得到下面的错误 指定'-Verbose'标志以查看应用于目标数据库的SQL语句。System.Data.SqlClient.SqlException (0x80131904):发生与网络相关或特定于实例的错误 在建立与SQL Server的连接时。服务器不可用 找到或无法访问。验证实例名称是否正确 SQL Server配置为允许远程连接。 (提供程序:SQL网
Update-Database
现在我每次都得到下面的错误
指定'-Verbose'标志以查看应用于目标数据库的SQL语句。System.Data.SqlClient.SqlException
(0x80131904):发生与网络相关或特定于实例的错误
在建立与SQL Server的连接时。服务器不可用
找到或无法访问。验证实例名称是否正确
SQL Server配置为允许远程连接。
(提供程序:SQL网络接口,错误:26-定位错误)
服务器/实例(已指定)
我可以在sql对象资源管理器中连接和查看数据库,甚至可以查看表和数据。我不知所措,打算先放弃代码,然后再转到数据库,甚至可能很快就会转到存储过程
我的连接字符串如下所示
<add name="MyDbContext" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\MyDbContext.mdf;Initial Catalog=MyDb;Integrated Security=True" providerName="System.Data.SqlClient" />
该死,我将项目设置为启动项目,然后运行命令,现在看起来一切正常!Grrrr。我假设从“默认项目:选择”下拉列表中选择项目可以做到这一点,但显然不行。您可以通过ConnectionString参数指定连接字符串:
Update-Database -ConnectionString "data source=server_name;initial catalog=db_name;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" -ConnectionProviderName "System.Data.SqlClient" -Verbose
您还需要将此参数与添加迁移命令的值相同:
Add-Migration Version_Name -ConnectionString "data source=server_name;initial catalog=db_name;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" -ConnectionProviderName "System.Data.SqlClient" -Verbose
上下文是否位于定义连接字符串的不同项目中?某些项目的名称也保持不变。刚刚停止工作并在访问sql Server时出错上下文的构造函数是什么样子的?如果使用以下命令,它是否也可以工作:
更新数据库-ConnectionStringName MyDbContext
?这很奇怪,我使用-ConnectionStringName开关并将字符串复制到配置文件中,然后我就出错了“找不到连接字符串名称‘MyDbContext’!