2014年9月30日 星期二

c# Entity Framework ConnectionString 不支援關鍵字: 'data source'。

時代在進步從ado到Entity Framework
不變的都是有connection string 只是寫法不一樣
今天問題的發生點是公司"希望"connection string 需要加密
以下為EF的conn我想大部份的人憑空也寫不出來吧當然咪兔
原本使用工具產生的connectionstring
 
metadata=res://*/Models.Model.csdl|res://*/Models.Model.ssdl|res://*/Models.Model.msl;provider=System.Data.SqlClient;provider connection string=&Quot;Data Source=192.168.1.1;initial catalog=test;user id=sa;password=1234;multipleactiveresultsets=True;App=EntityFramework&Quot;
寫一個function
 
  public static string getEntitiesConn()
        {
            string test = CodeClass.Decrypt(System.Configuration.ConfigurationManager.ConnectionStrings["testEntities"].ToString());
            return test;
        }
解密出來
 
metadata=res://*/Models.Model.csdl|res://*/Models.Model.ssdl|res://*/Models.Model.msl;provider=System.Data.SqlClient;provider connection string=&Quot;Data Source=192.168.1.1;initial catalog=test;user id=sa;password=1234;multipleactiveresultsets=True;App=EntityFramework&Quot;
看起來一樣吧
 
testEntities db = new testEntities(Conn.getEntitiesConn());
 
不支援關鍵字: 'data source'。
是那裡有問題阿仔細一下 &Quot;這東西不就是雙引號嗎
後來把要加密的connectionstring裡的 &Quot;改成雙引號再加密讀出來就OK有沒有那麼神阿@@
在此記錄一下希望以後類似問題能不被卡住