我在我的应用程序中使用EntityFramwok(代码优先),但由于某些原因,我必须将entityframwork approch更改为
Database First.我已成功在本地配置项目,当将代码发布到microsoft azure服务器并尝试在我的应用程序中登录时,它会引发异常:“上下文正在Code First模式中使用,代码是从EDMX文件生成的数据库优先或模型优先开发.这将无法正常工作.要解决此问题,请不要删除引发此异常的代码行.如果您希望使用Database First或Model First,请确保Entity Framework连接字符串是包含在启动项目的app.config或web.config中.如果您要创建自己的DbConnection,请确保它是EntityConnection而不是其他类型的DbConnection,并且您将其传递给其中一个带有DbConnection的基本DbContext构造函数.要了解有关Code First,Database First和Model First的更多信息,请参阅此处的Entity Framework文档:http://go.microsoft.com/fwlink/?LinkId = 394715“
我在谷歌上搜索过它但找不到任何线索,似乎我是唯一一个得到这个例外的人:(有没有人知道这个.我是azure的新手所以不知道如何改变那里的entityframwork方法任何帮助或建议将不胜感激:)
我在谷歌上搜索过它但找不到任何线索,似乎我是唯一一个得到这个例外的人:(有没有人知道这个.我是azure的新手所以不知道如何改变那里的entityframwork方法任何帮助或建议将不胜感激:)
解决方法
我刚刚将一个数据库第一个项目部署到Azure并遇到了相同的错误.现在谷歌搜索时的信息似乎比你提出这个问题时要多得多.无论如何,对我而言,这一切都不是完全有意义的,我不得不尝试提出解决方案.
这是我的情景:
我的数据库第一个数据库也托管在Azure上,Azure推荐用于ADO.NET的连接字符串是我放在Web.Release.config转换条目中的.我有两个连接字符串,一个是默认连接,另一个是用于db第一个项目的连接字符串.解决方案是使用来自Web.config连接字符串的相同(正常运行)内容,并仅使用Azure数据库连接字符串替换内部部分.我被剪掉了过去很开心,只是消除了导致错误的连接字符串的全部内容.
连接字符串中的信息批次特定于您的项目以及您在项目中创建的数据库第一个实体.以下是我的几个例子:
你是Web.config应该有你的本地开发环境的连接字符串(这些是由DB第一个向导为你创建的机会):
<configuration> ... <connectionStrings> <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-Webrole1-20150218073037.mdf;Initial Catalog=aspnet-Webrole1-20150218073037;Integrated Security=True" providerName="System.Data.sqlClient" /> <add name="DbFirstModelEntities" connectionString="Metadata=res://*/Models.DbFirstModel.csdl|res://*/Models.DbFirstModel.ssdl|res://*/Models.DbFirstModel.msl;provider=System.Data.sqlClient;provider connection string="data source=(localdb)\ProjectsV12;initial catalog=DbFirstData;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" /> </connectionStrings> ... </configuration>
注意dbfirst连接字符串是如何从一堆关于db模型的元数据开始的.这个东西很重要!!
接下来是正确的Web.Release.config连接字符串转换(只是首先发布数据库,但你需要为你拥有的其他任何东西做类似的事情):
<connectionStrings> <add name="DbFirstModelEntities" connectionString="Metadata=res://*/Models.DbFirstModel.csdl|res://*/Models.DbFirstModel.ssdl|res://*/Models.DbFirstModel.msl;provider=System.Data.sqlClient;provider connection string="Server=tcp:<yourdatabesserver>.database.windows.net,1433;Database=DbFirstData;User ID=<user>;Password=<password>;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> </connectionStrings>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。