【问题标题】:EntityFramework and update-database stopped workingEntityFramework 和更新数据库停止工作
【发布时间】:2015-11-04 14:32:27
【问题描述】:

我首先使用 EF 和代码让一切运行良好,直到我更改配置类以添加一些额外的种子数据,然后尝试

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" />

【问题讨论】:

  • 上下文是否与定义连接字符串的项目不同?
  • 一些项目,名称也保持不变。刚刚停止工作并在访问 sql server 时遇到错误
  • 上下文的构造函数是什么样的?
  • 如果你使用这个命令也可以:Update-Database -ConnectionStringName MyDbContext?
  • 这很奇怪,我使用 -ConnectionStringName 开关并将字符串复制到配置文件中,然后出现错误“找不到连接字符串名称'MyDbContext'!

标签: entity-framework ef-code-first code-first


【解决方案1】:

该死,我将项目设置为启动项目,然后运行命令,现在看起来一切正常!呸呸呸。我假设从默认项目中选择项目:选择下拉菜单这样做但显然不是。

【讨论】:

    【解决方案2】:

    您可以通过 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 命令的值相同:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-17
      • 1970-01-01
      • 1970-01-01
      • 2021-05-05
      • 2018-12-25
      • 2016-11-03
      相关资源
      最近更新 更多