【问题标题】:Azure Entity Framework connection string failingAzure 实体框架连接字符串失败
【发布时间】:2014-04-06 20:19:07
【问题描述】:

当我在本地运行我的项目时一切正常,但当我部署到 Azure 时,我收到以下错误。

"使用 T4 模板生成的用于 Database First 和 Model First 开发的代码如果在 Code First 模式下使用,可能无法正常工作。要继续使用 Database First 或 Model First,请确保在配置文件中指定实体框架连接字符串执行应用程序。要使用从 Database First 或 Model First 生成的这些类,使用 Code First 添加使用属性或 DbModelBuilder API 的任何其他配置,然后删除引发此异常的代码。"

我的连接字符串是:

add name="LifeEntities" connectionString="Server=tcp:abc000000ab.database.windows.net,1433;Database=Life;User ID=myid@abc000000ab;Password=mypw;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;" providerName="System.Data.SqlClient"

当我的代码尝试打开我的实体框架数据库的上下文时,我收到了这个错误。请注意,我正在使用一个非常基本的 MVC 项目模板,它也执行 ASP.NET Identity。

我读到这是因为代码优先 vs 数据,但不知道如何解决这个问题。

【问题讨论】:

    标签: c# asp.net asp.net-mvc entity-framework azure


    【解决方案1】:

    这是一个纯 SQL 连接字符串。您需要使用 EF 连接字符串,包括模型元数据等。

    这是一个例子:

    <add name="Context" connectionString="metadata=res://*/Context.csdl|res://*/Context.ssdl|res://*/Context.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.;initial catalog=Context;integrated security=True;MultipleActiveResultSets=True;&quot;" providerName="System.Data.EntityClient" />
    

    【讨论】:

    • 我以前见过这个,但是我在天蓝色网站上使用什么数据源?在本地我有 data source=(LocalDb)\v11.0;attachdbfilename=|DataDirectory|\aspnet-MMO-20140404072409.mdf
    • 搞清楚了。现在我得到一个访问被拒绝,所以需要弄清楚权限。
    • 您可能没有正确打开防火墙中的数据库。您需要在 Azure 门户中解决此问题。
    • 我这样做了,但是我在 ASP.NET 标识表和我的自定义表之间混合了连接字符串。我为我的表创建了一个单独的连接字符串,因为对于那些我首先使用数据库并且身份的东西首先是代码,我猜他们不喜欢通过连接字符串进行混合。
    • 那么当您的数据库在天蓝色时,EF 连接字符串的正确语法是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-04
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-04
    • 1970-01-01
    相关资源
    最近更新 更多