DbContext连接字符串的发现

本文说的是我在测试LinqToMysql发现的问题

客户端配置在App.config中的节点  

<connectionStrings>

    <add name="new_schema_firdbEntities" connectionString="metadata=res://*/FaceEntityModel.csdl|res://*/FaceEntityModel.ssdl|res://*/FaceEntityModel.msl;provider=MySql.Data.MySqlClient;provider connection string= &quot;server=localhost;user id=root;persistsecurityinfo=True;password=;database=new_schema_firdb &quot;" providerName="System.Data.EntityClient"/>

  </connectionStrings>

其中DB连接是从EF的配置节点中直接拷贝到客户端的

我在CS端代码中用到new_schema_firdbEntities db=new new_schema_firdbEntities("连接字符串"),(这里的类new_schema_firdbEntities继承自DbContext,EF自动生成的)连接字符串如果是

string connectionString = ConfigurationManager.ConnectionStrings["new_schema_firdbEntities"].ConnectionString;这里的变量connectionString 则可以正常连接数据库;

如果连接字符串是connectionString ="metadata=res://*/FaceEntityModel.csdl|res://*/FaceEntityModel.ssdl|res://*/FaceEntityModel.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=localhost;user id=root;persistsecurityinfo=True;password=;database=new_schema_firdb&quot;",则访问数据库会失败,会提示错误“不识别关键字server”,把人引入歧途。

抓耳挠腮,测试良久,同样的字符串,测试结果怎么会前者行得通,后者就不行呢,难道连接字符串不一样?

我调试后发现前者会把&quot;转译成\,而后者保持原样,DB构造方法生成实例时,后者连接字符串含特殊字符,导致部分字符串截断,因此会访问数据库失败。。。,真是让人蛋疼。


连接字符串记得要转译。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值