关键字不支持:'元数据'
我想发布我的mvc 3项目,但我不能连接到SQL服务器(使用EF),因为连接字符串错误。那就是:关键字不支持:'元数据'
<add name="PackStoreEntities" connectionString="metadata=res://*/Models.PackStore.csdl|res://*/Models.PackStore.ssdl|res://*/Models.PackStore.msl;provider=System.Data.SqlClient;provider connection string="workstation id=PackStore.mssql.somee.com;packet size=4096;user id=*****;pwd=****;data source=PackStore.mssql.somee.com;persist security info=False;initial catalog=PackStore"" providerName="System.Data.EntityClient" />
我把这个部分形成了我的主机供应商:
workstation id=PackStore.mssql.somee.com;packet size=4096;user id=*****;pwd=****;data source=PackStore.mssql.somee.com;persist security info=False;initial catalog=PackStore
MVC项目运作良好的本地服务器上,而是发表我得到“不支持关键字:‘元’”的时候。我的错误在哪里? Thnaks的答案。
试试这个...
<add name="PackStoreEntities" connectionString="metadata=res://*;provider=System.Data.SqlClient;provider connection string='Data Source=PackStore.mssql.somee.com;Initial Catalog=PackStore;User ID=***;Password=****;'" providerName="System.Data.EntityClient" />
编辑..
<add name="PackStoreEntities" connectionString="metadata=res://*;provider=System.Data.SqlClient;provider connection string='workstation id=PackStore.mssql.somee.com;packet size=4096;user id=*****;pwd=****;data source=PackStore.mssql.somee.com;persist security info=False;initial catalog=PackStore;'" providerName="System.Data.EntityClient" />
你说的是替换...我已经尝试过这个。它没有工作,而不是“关键字不支持”,我得到:“建立到SQL Server的连接时发生网络相关或实例特定的错误。服务器未找到或无法访问。请验证该实例(提供者:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)“' – AlexSolovyov 2012-04-21 11:14:50
我编辑了我的答案... – 2012-04-21 11:18:12
同样的问题.. 。元数据( – AlexSolovyov 2012-04-21 11:23:08
删除他从你的连接字符串的元数据。这仅用于本地调试。对于在线应用程序可以不需要。
请尝试通过伊姆
我''试过这个,asme prob。但是,如果从连接字符串中删除'metadata = res:// *;',我会得到以下错误:'连接字符串中缺少一些必需的信息。总是需要'metadata'关键字。' – AlexSolovyov 2012-04-21 11:27:39
给出的连接字符串,而从转换的LINQ到SQL实体框架为好,甚至我的固定的连接字符串后,我得到这个错误。原来一些asp:SqlDataSource控件需要切换到asp:EntityDataSource。
前:
<asp:SqlDataSource ID="SqlDataSourceProducts" runat="server" SelectCommand="SELECT Id, Description FROM [Product]"
ConnectionString="<%$ ConnectionStrings:crmConnectionString %>" CacheDuration="5" CacheExpirationPolicy="Absolute">
</asp:SqlDataSource>
后:
<asp:EntityDataSource ID="SqlDataSourceProducts" runat="server" Select="Id, Description"
EntitySetName="Products" ConnectionString="<%$ ConnectionStrings:crmConnectionString %>" DefaultContainerName="CRM" >
</asp:EntityDataSource>
需要注意的是,如果您不想使用EDMX并想使用SQL,则prvider名称需要像这样更改:providerName =“System.Data.EntityClient” – Sinker 2014-11-14 12:27:06
也有类似的问题,看起来像是从somee服务器的连接字符串必须是两个"
之间这就是我改变,它的工作原理...
在你的web.config中,你需要有两个独立的连接:一个是实体框架工作,另一个是ADO.net
应该是这样的:
<connectionStrings>
<add name="LoginDB" connectionString="Data Source=****;Initial Catalog=int422_113b16;User ID=****;Password=****" />
<add name="BlogEntities" connectionString="metadata=res://*/App_Code.BlogModel.csdl|res://*/App_Code.BlogModel.ssdl|res://*/App_Code.BlogModel.msl;provider=System.Data.SqlClient;provider connection string="data source****;initial catalog=int422_113b16;user id=****;password=****;multipleactiveresultsets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
我不知道为什么人们认为你需要在你的web.config两种连接方式,这不是真的。我想检查的第一件事是查看我的连接是否在Visual Studio中工作。尝试去你的服务器浏览器并连接到你的数据库。如果你能够连接没有问题,你能够看到你的表,那么你知道它不是一个连接问题。其次,确保您的Model名称与您的web.config中的名称匹配。这最大限度地减少了项目中的混乱,最终确保您的模型名称空间指向您的项目名称空间,这样您可以通过名称调用模型,而不必导入或完全限定它。
您应该能够使用模型中的任何表格创建一个强大的视图。这就是我为我做的,我没有像许多人所建议的那样修改连接字符串,也没有删除元数据。
检查这个troubleshooting指导它可能会发光一些,并帮助您了解实体连接如何工作。
我有同样的例外,但能够通过保持ConnectionString
相同,但使用EntityConnection
而不是SqlConnection
来修复它。
那是帮助完整的.... – 2012-04-21 11:09:54