2014-07-03 74 views
0

我正在使用實體框架5,我試圖在運行時創建連接字符串。連接字符串在運行時實體框架

這是我的舊配置

<connectionStrings> 
    <!--<add name="JobEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=local;initial catalog=DB;persist security info=True;user id=sa;password=1234;MultipleActiveResultSets=True;App=JOB&quot;" providerName="System.Data.EntityClient" />--> 
</connectionStrings> 

我的DbContext構造

public JobEntities(String connectionString) 
      : base(connectionString) 
     { 
     } 

,並打電話給我的數據的基礎上

String entityConnStr = @"metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=data source=local;initial catalog=DB;persist security info=True;user id=sa;password=1234;MultipleActiveResultSets=True;App=JOB"; 

using (var context = new Model.JobEntities(entityConnStr)) 
{ 
    try 
     { 
     var d = context.TABLE.ToList(); 
     } 
     catch(Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
} 

whene執行我的代碼異常被拋出與消息

不支持的關鍵字:'初始目錄'。

有人能幫助我,請

+0

已經有一個類似的問題在這裏: http://stackoverflow.com/questions/8150737/asp-net-mvc3-connection-string-keyword-not-supported-initial-catalog – nsgocev

回答

0

您提供的連接字符串沒有被正確引用。

String entityConnStr = @"metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=data source=local;initial catalog=DB;persist security info=True;user id=sa;password=1234;MultipleActiveResultSets=True;App=JOB"; 

應該

String entityConnStr = @"metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=""data source=local;initial catalog=DB;persist security info=True;user id=sa;password=1234;MultipleActiveResultSets=True;App=JOB"""; 

用於實體框架的連接字符串有嵌入在他們基於提供商的連接字符串。 initial catalog屬性被錯誤地解釋爲屬於實體框架級別而不是提供者級別。

相關問題