【问题标题】:How to use a local copy of a "Database First" Microsoft SQL Database for Testing Purposes如何使用“数据库优先”Microsoft SQL 数据库的本地副本进行测试
【发布时间】:2017-03-09 11:43:53
【问题描述】:

我在生产环境中使用 Microsoft SQL 数据库。该项目使用数据库优先方法和实体框架。

现在,我已将所述生产数据库导出到 Microsoft SQL 服务器的本地部署。出于测试目的,我想使用连接字符串连接到该本地部署

metadata=res://*/DataModels.MyModel.csdl|
res://*/DataModels.MyModel.ssdl|res://*/DataModels.MyModel.msl;
provider=System.Data.SqlClient;provider connection string="data 
source=localhost;initial catalog=model;integrated security=True;
MultipleActiveResultSets=True;App=EntityFramework"

但是,当我尝试将数据发送到数据库时,出现以下异常:

System.Data.Entity.Core.EntityCommandExecutionException: 
An error occurred while executing the command definition. 
See the inner exception for details. 
---> System.Data.SqlClient.SqlException: Invalid object name 
'dbo.my_db_object_name'.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, 
Boolean breakConnection, Action`1 wrapCloseInAction)

但是,向生产数据库发出相同的请求可以正常工作。有什么想法我可能会错过吗?生产数据库和本地数据库的数据库名称、对象/表名称相同。甚至我通过 Microsoft SQL Server Management Studio 发送的查询在这两个实例上都可以正常工作。

我认为它必须与我在这里缺少的实体框架做一些事情。有任何想法吗?我是否需要更新用于生产和测试的数据模型?

【问题讨论】:

  • 您是否检查了旧数据库连接的 Web 配置?
  • 你到底是什么意思?当我更改连接字符串时,不应该是这样吗?

标签: c# .net sql-server entity-framework


【解决方案1】:

我发现了问题。连接字符串错误:

initial catalog=model

必须替换为

initial catalog=my_db

现在像魅力一样工作:-)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-15
    • 1970-01-01
    相关资源
    最近更新 更多