Windows Azure中,实体框架。 关键字不支持:“元数据”。(Windows Azure

2019-07-05 12:08发布

这已经被问了几次,但我一直没能做出对我有什么的建议工作。

我有一个网站和SQL数据库,我已经建立在本地,现在部署到Azure上。 该数据库是一个链接资源的网站。 我能够浏览网站,我甚至能够连接并使用ADO.Net和一个标准的连接字符串对数据库运行查询。

问题是,当我尝试使用实体框架我不断收到不支持关键字连接:“元数据”。 我已经删除了多个活动的记录集,并试图用“替换”,但它并没有工作。我完全被卡住的想法。

Answer 1:

这里,在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 ID=myUserName@myServerName;Password=myPasswordHere;"

与你进行比较,并注意连接类型是“自定义”,在蔚蓝的门户。



Answer 2:

我有同样的问题作为OP,但他的解决方案并没有为我工作。

这是一个连接字符串的问题,但不能与报价。

既然花了两天时间来解决,也许这将帮助别人:

在Azure托管时的作品[我的ASP.NET MVC 4.5 /实体框架5.0应用程序的连接字符串(我开发针对SQL Server 2012的本地,但数据库迁移到Azure的SQL数据库(使用SQL数据库迁移向导 ))。 我使用的数据库首先创建我的.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=&quot;Data Source=tcp:B6JD5K5EP4.database.windows.net,1433;Initial Catalog=MYPROJECT_DB;Integrated Security=False;User ID=MYPROJECT@B6JD5K5EP4;Password=MYPASSWORDABC123;**MultipleActiveResultSets=True**;Encrypt=True;TrustServerCertificate=False&quot;" providerName="System.Data.EntityClient"/>

大写的文字是我的Azure的信息。 很显然,你需要,而不是使用自己的。

连接字符串的这一部分给我做恶梦,这可能会造成您的问题还有:

res://*/Models.MyProjectModel.csdl|res://*/Models.MyProjectModel.ssdl|res://*/Models.MyProjectModel.msl

这些文献必须是完全正确的 。 让我再说一遍: 这些提法都必须完全正确!

看完这篇文章从2008年 (“疑难解答实体框架连接字符串”),我所使用的.NET反射来看看MyProjectModel.dll内(我的.dll文件的名称(在您的项目可能不同),如他认为,果然,连接字符串(这是自动生成的,我通过实体框架!)是错误的。这不包括前缀。当我加入模型。前缀(这是怎么.csdl / .msl / .ssdl命名我的.dll文件(在你可能不同))内,一切伟大的工作。看一看您的.dll里面,看看名字相匹配。如果不是,将其更改为匹配的内容出现在.dll文件(阅读上面的文章如果我说的不够清楚。)



文章来源: Windows Azure, Entity Framework. Keyword not supported: 'metadata'.