6

我在共享服务器上运行 ASP.NET MVC,并且在通过 System.Data.EntityClient 连接到 SQL 时遇到问题。下面是我的 hosing 提供商给我连接到 SQL 的连接字符串和 VS 在开发期间为我的本地机器配置的连接字符串,当我部署到服务器时我的连接字符串应该是什么样子?

来自我的托管服务提供商:

<add name="WeddingsDBEntities" 
  connectionString="data Source=<server name>; Initial Catalog=<db name>; User ID=<user ID>; Password=<password>;" 
  providerName="System.Data.EntityClient"/>

来自 VS(在开发期间):

connectionString="metadata=res://*/Models.WeddingsModel.csdl|res://*/Models.WeddingsModel.ssdl|res://*/Models.WeddingsModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\WeddingsDB.mdf;Integrated Security=True;User Instance=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient"

谢谢!

4

3 回答 3

9

您必须将连接字符串包装在实体连接字符串中,其格式为

<add name="Name"
  connectionString="metadata=<Conceptual Model>|<Store Model>|<Mapping Model>;
  provider=<Underlying Connection Provider>;
  provider connection string=&quot;<Underlying ConnectionString>&quot;" 
  providerName="System.Data.EntityClient"/>

代替:

<add name="WeddingsDBEntities" 
  connectionString="data Source=<server name>; Initial Catalog=<db name>; User ID=<user ID>; Password=<password>;" 
  providerName="System.Data.EntityClient"/>

用这个:

<add name="WeddingsDBEntities"
  connectionString="metadata=res://*/Models.WeddingsModel.csdl|res://*/Models.WeddingsModel.ssdl|res://*/Models.WeddingsModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data Source=<server name>; Initial Catalog=<db name>; User ID=<user ID>; Password=<password>;MultipleActiveResultSets=True&quot;" 
  providerName="System.Data.EntityClient"/>
于 2009-03-28T20:57:11.747 回答
1

将提供程序从 entityclient 更改为 sqlclient(假设代码优先 EF)。

providerName="System.Data.EntityClient" />

providerName="System.Data.SqlClient" />

于 2016-03-25T04:36:51.307 回答
0
<add name="Name" connectionString="metadata=res://*; provider=System.Data.SqlClient; provider connection string='; data source=YOURIP;Initial Catalog=YOURDB;Persist Security Info=True;User ID=YOURUSER;Password=YOURPASSWORD; Connect Timeout=15;Encrypt=False;Packet Size=4096;MultipleActiveResultSets=True'" 
  providerName="System.Data.EntityClient"/>

Hope this Will help you!!
于 2020-06-23T02:24:20.233 回答