Enterprise Library 5 數據訪問之一(初級)體驗篇:直接返回業務對象數據

功能描述:

在執行玩一條sql語句後如果直接將結果的DataTable或Datsset,DataReader這些東西省掉直接返回我們一個業務對象豈不是更爽。Enterprise Library 5 已經爲我們實現了這樣的功能,其原理圖如下:


下面我些幾行代碼描述一下其用法:
首先定義一個業務對象UserInfo
 public class UserInfo
    {
        public int Id { set; get; }
        public string UserName { set; get; }
        public string Password { set; get; }
    }
數據訪問代碼如下,實現功能是執行Sql查詢後返回一個對象的數據或返回一個集合對象的數據
 /// <summary>
        /// 獲取單個對象數據
        /// </summary>
        /// <param name="id">Id</param>
        /// <returns></returns>
        public UserInfo GetUserInfo(int id)
        {
            string cmdText = string.Format("select * from UserInfo where id={0}", id);
            var accrssor = db.CreateSqlStringAccessor(cmdText, MapBuilder<UserInfo>.BuildAllProperties());
            var customerData = accrssor.Execute();
            return customerData.FirstOrDefault<UserInfo>();
        }
        /// <summary>
        /// 獲取一個對象集合數據
        /// </summary>
        /// <returns></returns>
        public List<UserInfo> GetUserList()
        {
            string cmdText = "select * from UserInfo";
            var accrssor = db.CreateSqlStringAccessor<UserInfo>(cmdText, MapBuilder<UserInfo>.BuildAllProperties());
            var data = accrssor.Execute();
            return data.ToList<UserInfo>();
        }
其中:
CreateSqlStringAccessor 是應用Sql語句情況
如果是存儲過程則要使用:CreateSprocAccessor
短短四行代碼搞定以前我們手工將DataSet填充到業務對象的繁雜過程,代碼看起來優美很多。也便於代碼生成器生成符合規則的代碼文件.





發佈了155 篇原創文章 · 獲贊 11 · 訪問量 30萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章