[英]Configuring Enterprise Library 5.0 Data Access Application Block
[英]Data Access Application Block 5.0 fluent configuration
我正在使用以下代碼來設置連接字符串:
ConfigurationSourceBuilder builder = new ConfigurationSourceBuilder ();
builder.ConfigureData ()
.ForDatabaseNamed ( "TestDatabase" )
.ThatIs.ASqlDatabase ()
.WithConnectionString ( "Data Source=127.0.0.1;User Id=sa;Password=123;Initial Catalog=DataAccessExamples;" )
.AsDefault ();
var configSource = new DictionaryConfigurationSource ();
builder.UpdateConfigurationWithReplace ( configSource );
EnterpriseLibraryContainer.Current
= EnterpriseLibraryContainer.CreateDefaultContainer ( configSource );
執行上述代碼后,我希望以下代碼可以工作,但它說連接未初始化並且 command.Connection 屬性始終保持 null。
Database database = DatabaseFactory.CreateDatabase ();
DbCommand command = database.GetSqlStringCommand ( "Select * from TT" );
DbDataReader dbReader = command.ExecuteReader ( System.Data.CommandBehavior.CloseConnection );
while (dbReader.Read ())
{
System.Diagnostics.Debug.WriteLine ( dbReader[0].ToString () );
}
請誰能告訴我為什么連接沒有被初始化?
我在庫項目中使用上述代碼,並希望在運行時配置 DAAB。
謝謝
一方面,為什么要對連接字符串進行硬編碼? 在您的應用程序的配置文件中包含連接字符串不是更有意義嗎?
為什么需要使用數據庫工廠?
SqlDatabase db = new SqlDatabase("some connection string from the config");
DbCommand cmd = db.GetSqlStringCommand(sqlStatement);
IDataReader reader = db.ExecuteReader(cmd);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.