【问题标题】:c# Azure EntityFramework SQL Server database errorc# Azure EntityFramework SQL Server 数据库错误
【发布时间】:2014-04-08 11:28:16
【问题描述】:

在 VS2013 中,我创建了一个 Asp.net WebAPI 项目,该项目使用 EntityFramework 将数据保存/检索到 SQL Server 数据库中。 SQL Server 数据库托管在 Azure 中。

我有一个控制器类在我的 Web API 项目中执行此操作,并且一切正常......直到我将我的 WebAPI 项目发布到 Azure 然后我收到一个错误:

InnerException: System.Data.SqlClient.SqlException. Message=Invalid object name 'dbo.MyTableName'.

请务必注意,当我使用 Localhost 运行 WebAPI 项目时,它工作正常。

有谁知道我可以如何调查问题所在?我已附加到调试器并设置了一个断点。我可以看到它在这条线上失败了:

db.MyTableName.Find(id);

当我返回一个硬编码的值时,它可以正常工作,因此使用 EntityFramwork 连接到数据库显然是一个问题。 我的预感是上传到 Azure 后,EntityFramework 的模型对象的引用路径不正确。在 web.config 中: metadata=res://*/Model1.csdl...

我试过 metadata=res://MyAssemblyName/Model1.csdl...

我试过 metadata=res://MyAssemblyName.dll/Model1.csdl...

但仍然有同样的错误。我可以在这里尝试任何其他变体吗?

我还更新到 SQL Server/azure FIREWall 以确保允许正确的 IP 地址,但这也不是问题。

有什么想法吗?

编辑 我也尝试过这些连接字符串,但没有成功

connectionString="metadata=res://AssemblyName/Model1.csdl|res://AssemblyName/Model1.ssdl|res://AssemblyName/Model1.msl;provider=System.Data.SqlClient;provider connection string="Data Source=tcp:xxx.database.windows.net,1433;Initial Catalog=dev_db;User Id=xxx;Password=xxx;" providerName="System.Data.EntityClient"
connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string="Data Source=tcp:xxx.database.windows.net,1433;Initial Catalog=dev_db;User Id=xxx;Password=xxx;" providerName="System.Data.EntityClient"

【问题讨论】:

  • 您是否更新了连接字符串以使用 SQL Azure?您是如何将调试器附加到部署在 Azure 中的 webapi 的?

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


【解决方案1】:

对于 Azure SQL,您的实体连接字符串应如下所示:

connectionString="metadata=res://*/xxxDataModel.csdl|res://*/xxxDataModel.ssdl|res://*/xxxDataModel.msl;provider=System.Data.SqlClient;provider connection string="data source=xxx.database.windows.net;initial catalog=xxxData;User Id=xxx;password=xxx;MultipleActiveResultSets=True;App=EntityFramework""

【讨论】:

  • 我试过了,但还是不行。我用我尝试过的其他一些连接字符串更新了问题
【解决方案2】:

在将代码发布到 Azure 期间,连接字符串自动更改。所以我不得不编辑 Azure 服务器上的 web.config 文件并重新启动网站,它就可以工作了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-12
    • 2021-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多