非常方便的数据储存实体类,可以适应任何单表信息储存

    又于每次开发都要写实体,如果想灵活一点,就必须要使用到反射进行给实体赋值,这样性能就大打折扣了,于是我就设计了一下实体信息储存类,性能还为测试,等我的数据数据访问层设计完成,在来PK性能,看看能提升性能多少。

using System;
using System.Collections.Generic;
using System.Collections;
using System.Text;

/*
 * 
 *用途:储存数据库表信息,代替系统原来的实体类
 *作者:双柳居士
 *时间:2012-08-28
 *QQ:275522539
 *Email:88788802@qq.com
 *
 *
 */


namespace Apple.Database
{
    /// <summary>
    /// 二维表数据
    /// </summary>
    /// <typeparam name="TKey"></typeparam>
    /// <typeparam name="TValue"></typeparam>
    public class TableData<TKey, TValue> : Dictionary<TKey, TValue> 
    {
    }

    /// <summary>
    /// 二维表对象实体
    /// </summary>
    public class TableDataEntity
    {
        /// <summary>
        /// 数据储存容器
        /// </summary>
        private TableData<int, IDictionary<string, string>> _dataContainer = new TableData<int, IDictionary<string, string>>();

        private int _rowIndex = 0;

        /// <summary>
        /// 添加一行数据
        /// </summary>
        /// <param name="rowData"></param>
        public void Add(IDictionary<string, string> rowData)
        {
            _dataContainer.Add(_rowIndex, rowData);
            _rowIndex++;
        }

        /// <summary>
        /// 添加一列数据,如果行不存在,则创建一个新的行
        /// </summary>
        /// <param name="RowIndex"></param>
        /// <param name="FieldName"></param>
        /// <param name="Value"></param>
        public void AddRowFieldData(int RowIndex,string FieldName,string Value)
        {
            if (!_dataContainer.ContainsKey(RowIndex))
            {
                _dataContainer.Add(_rowIndex,new Dictionary<string,string>());
                _rowIndex++;
            }
            _dataContainer[RowIndex].Add(FieldName, Value);
        }
        /// <summary>
        /// 添加一行数据
        /// </summary>
        /// <param name="RowIndex"></param>
        /// <param name="rowData"></param>
        public void AddRow(IDictionary<string, string> rowData)
        {

            _dataContainer.Add(_rowIndex, rowData);
           _rowIndex++;
        }
        
        /// <summary>
        /// 获取一列数据
        /// </summary>
        /// <param name="RowIndex"></param>
        /// <param name="FieldName"></param>
        /// <returns></returns>
        public string GetRowFieldData(int RowIndex, string FieldName)
        {
            IDictionary<string, string> rtnValue = null;
            if (_dataContainer.TryGetValue(RowIndex, out rtnValue))
            {
                return rtnValue[FieldName];
            }
            return null;
        }

        /// <summary>
        /// 获取一行数据
        /// </summary>
        /// <param name="RowIndex"></param>
        /// <returns></returns>
        public IDictionary<string, string> GetRowData(int RowIndex)
        {
            IDictionary<string, string>  rtnValue = null;
            if (_dataContainer.TryGetValue(RowIndex, out rtnValue))
            {
                return rtnValue;
            }
            return null;
        }
        
        /// <summary>
        /// 删除一行数据(不重新维护行号)
        /// </summary>
        /// <param name="rowIndex"></param>
        public void Remove(int rowIndex)
        {
            _dataContainer.Remove(rowIndex);
        }


    }
}

 

 

 

 

posted @ 2012-08-28 01:33  双柳居士  阅读(716)  评论(0编辑  收藏  举报