这已被问了几次,但我一直没有能够为我工作的任何建议。Windows Azure实体框架。不支持的关键字:'元数据'。
我有一个网站和SQL数据库,我在本地构建,现在部署到Azure中。数据库是网站的链接资源。我能够浏览网站,甚至可以使用ADO.Net和标准连接字符串连接并运行对数据库的查询。
问题是当我尝试连接使用实体框架我总是收到关键字不支持:'元数据'。我已经删除了多个活动记录集,并尝试用''替换"',但它没有工作。我完全被想法所困。
这已被问了几次,但我一直没有能够为我工作的任何建议。Windows Azure实体框架。不支持的关键字:'元数据'。
我有一个网站和SQL数据库,我在本地构建,现在部署到Azure中。数据库是网站的链接资源。我能够浏览网站,甚至可以使用ADO.Net和标准连接字符串连接并运行对数据库的查询。
问题是当我尝试连接使用实体框架我总是收到关键字不支持:'元数据'。我已经删除了多个活动记录集,并尝试用''替换"',但它没有工作。我完全被想法所困。
这里是在Azure门户定义我的连接字符串,对于DatabaseFirst方法:
metadata=res://*/mySuperModel.csdl|res://*/mySuperModelModel.ssdl|res://*/mySuperModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=tcp:myServerName.database.windows.net,1433;Initial Catalog=myDatabaseName;User [email protected];Password=myPasswordHere;"
与你和注意,连接类型是蔚蓝的门户网站“定制”比较。
我和OP有同样的问题,但他的解决方案并不适合我。
这是一个连接字符串问题,但没有引号。
既然花了两天时间来解决,也许这将帮助别人:
在Azure托管时工作[我的ASP.NET MVC 4.5 /实体框架5.0应用程序的连接字符串(我开发针对SQL Server 2012本地,但将数据库迁移到Azure SQL数据库(使用SQL Database Migration Wizard))。我使用的数据库首先创建我的.edmx文件(我从数据库中生成的(数据)模型)是:
<add name="MYPROJECTENTITIES" connectionString="**metadata=**res://*/MODELS.MYPROJECTMODEL.csdl|res://*/MODELS.MYPROJECTMODEL.ssdl|res://*/MODELS.MYPROJECTMODEL.msl;provider=System.Data.SqlClient;provider connection string="Data Source=tcp:B6JD5K5EP4.database.windows.net,1433;Initial Catalog=MYPROJECT_DB;Integrated Security=False;User [email protected];Password=MYPASSWORDABC123;**MultipleActiveResultSets=True**;Encrypt=True;TrustServerCertificate=False"" providerName="System.Data.EntityClient"/>
采用大写的文字是我的Azure的信息。显然,你需要使用你自己的。
连接字符串的这一部分给我做恶梦,这可能会造成您的问题还有:
res://*/Models.MyProjectModel.csdl|res://*/Models.MyProjectModel.ssdl|res://*/Models.MyProjectModel.msl
这些提法都必须完全正确。让我重复一遍:那些引用必须完全正确!
阅读this article from 2008(“疑难解答实体框架连接字符串”)后,我所使用的.NET反射来看看MyProjectModel.dll(我的.dll文件的名称(在您的项目可能有所不同)一样,他暗示,并确保内部不过,连接字符串(它是由Entity Framework自动为我生成的)是错误的,它没有包含前缀,只要我添加了Models。 prefix(这就是.csdl/.msl/.ssdl在我的.dll文件里面(可能与你的不同)),一切都很顺利。看看你的.dll文件,看看它们是否匹配,如果不匹配,改变它们以匹配在.dll中出现的内容。阅读上面的文章,如果我说的不够清楚。)
您可以发布您的完整连接字符串(省略服务器名称和密码)以及您使用的EF版本,以及您使用的方法(即, CodeFirst,ModelFirst,DatabaseFirst)。然后精确的堆栈跟踪错误。至少2年以来,MARS不是SQL Azure的问题。 – astaykov
对不起。我倾向于在凌晨3点忘记事情。我也准备好了粘贴。我可以通过将'"'替换为'并且通过将连接类型更改为自定义来解决此问题,如下所述。 –