Data Access Application Block微軟企業(yè)庫中數(shù)據(jù)訪問應(yīng)用程序塊簡化了訪問數(shù)據(jù)庫的任務(wù)。應(yīng)用程序可以在各種場景使用應(yīng)用程序塊,如讀取數(shù)據(jù)庫顯示,傳遞數(shù)據(jù)到應(yīng)用程序?qū)?,及提交修改后的?shù)據(jù)回?cái)?shù)據(jù)庫。 應(yīng)用程序塊包括對(duì)存儲(chǔ)過程和內(nèi)聯(lián)SQL語句的支持。常見的事務(wù)管理任務(wù),例如管理連接以及創(chuàng)建和緩存參數(shù),都封裝在應(yīng)用程序塊的方法中。換句話說,數(shù)據(jù)訪問應(yīng)用程序塊提供了對(duì)簡單易用類中ADO.NET最常用特性的訪問,并相應(yīng)地提高了開發(fā)人員的生產(chǎn)力。 如何使用Data Access Block?Data Access Block不是一個(gè)ORM解決方案,如果想使用ORM,應(yīng)該考慮使用EF框架。 使用Data Access Block的步驟添加Data Access Application Block程序集使用NuGet安裝EnterpriseLibrary.Data,這會(huì)添加所有必要的程序集和引用。如果使用SQL CE數(shù)據(jù)庫,則添加EnterpriseLibrary.Data.SqlCe。 配置Block和引用必須的程序集在配置文件中配置訪問的數(shù)據(jù)庫。Data Access Block利用在App.config,Web.Config或其它配置文件中的連接字符串<connectionStrings>來使用相應(yīng)的數(shù)據(jù)庫;以及Enterprise Library特定的章節(jié)來配置Enterprise Library庫。下面的XML配置了連接字符串和數(shù)據(jù)庫 <?xml version="1.0"?> <configuration> <configSections> <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data. Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" /> </configSections> <dataConfiguration defaultDatabase="Connection String" /> <connectionStrings> <add name="Connection String" connectionString="Data Source=JERRY-PC;Initial Catalog=Logging;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings></configuration>
可以使用Enterprise Library Configuration工具來完成這些設(shè)置。 創(chuàng)建數(shù)據(jù)庫實(shí)例// Configure the DatabaseFactory to read its configuration from the .config file DatabaseProviderFactory factory = new DatabaseProviderFactory(); // Create the default Database object from the factory. // The actual concrete type is determined by the configuration settings. Database defaultDB = factory.CreateDefault(); // Create a Database object from the factory using the connection string name. Database namedDB = factory.Create("ExampleDatabase");
使用數(shù)據(jù)庫實(shí)例獲取數(shù)據(jù)或執(zhí)行SQL語句private void Get() { var dbProviderFactory = new DatabaseProviderFactory(); var defaultDb = dbProviderFactory.CreateDefault(); // var defaultDb = dbProviderFactory.Create("ExampleDatabase"); using (var reader = defaultDb.ExecuteReader(CommandType.Text, "select * from log")) { DisplayRowValues(reader); } } void DisplayRowValues(IDataReader reader) { while (reader.Read()) { for (int i = 0; i < reader.FieldCount; i++) { Console.WriteLine("{0} = {1}", reader.GetName(i), reader[i].ToString()); } Console.WriteLine(); } }
|