在專案加入一個ADO.NET實體資料模型後,
.NET會在Web.config加上以下的連線資訊:
<connectionStrings>
<add name="LoLEntities" connectionString="… " providerName="System.Data.EntityClient" />
</connectionStrings>
如果不想把連線字串寫在Web.config,可以考慮以下做法手動去設定連線。
比較重要的是,Entity的連線 (EntityConnectionStringBuilder) 一定要設定MetaData的位置 (如下圖)
可直接寫成如下的路徑,讓程式自己去尋找即可。(Web.config預設的寫法)
如 "res://*/Import.LoLModel.csdl|res://*/Import.LoLModel.ssdl|res://*/Import.LoLModel.msl"
private LoLEntities _lolEntities; // Specify the provider name, server and database. string sProvider = "System.Data.SqlClient"; string sServerName = "[Your Database Server Name/IP]"; string sDatabaseName = "XXX"; // Initialize the connection string builder for the // underlying provider. SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder(); // Set the properties for the data source. sqlBuilder.DataSource = sServerName; sqlBuilder.InitialCatalog = sDatabaseName; sqlBuilder.IntegratedSecurity = false; sqlBuilder.PersistSecurityInfo = true; sqlBuilder.UserID = "[USER ID]"; sqlBuilder.Password = "[USER PASSWORD]"; sqlBuilder.MultipleActiveResultSets = true; // Initialize the EntityConnectionStringBuilder. EntityConnectionStringBuilder entityBuilder =new EntityConnectionStringBuilder(); //Set the provider name. entityBuilder.Provider = sProvider; // Set the provider-specific connection string. entityBuilder.ProviderConnectionString = sqlBuilder.ToString(); String sMetadata = string.Format(@"res://*/Import.LoLModel.csdl|res://*/Import.LoLModel.ssdl|res://*/Import.LoLModel.msl"); entityBuilder.Metadata = sMetadata; //列印連線字串 Console.WriteLine(entityBuilder.ToString()); //************************************************** //測試連線 //************************************************** using (EntityConnection conn = new EntityConnection(entityBuilder.ToString())) { try { conn.Open(); Console.WriteLine("測試連線"); conn.Close(); } catch (Exception ex) { Console.WriteLine(ex.Message); } } // Create an EntityConnection. _lolEntities = new LoLEntities(new EntityConnection(entityBuilder.ToString()) );
沒有留言:
張貼留言