CYQ.Data 轻量数据访问层(五) 构造数据行

简介:

有了数据结构单元DataCell之后,数据单元行也就很容易写了,因为,所有的数据单元加起来,就成了数据行了

于是,我们很轻易的写出了以下类:

ExpandedBlockStart.gif
ExpandedBlockStart.gif/// <summary>
    
/// 一行数据
    
/// </summary>

    public class MDataRow : List<MDataCell>
ExpandedBlockStart.gif    
{
        
public MDataRow()
            : 
base()
ExpandedSubBlockStart.gif        
{
        }

        
public MDataRow(int capacity)
            : 
base(capacity)
ExpandedSubBlockStart.gif        
{
        }

    }

 

看,没几行代码

现在,我们为行加几个常用的属性,比如访问行所属的表名,还有从行访问出其列的结构,顺便加上一个数据库链接字符串

如下:

ExpandedBlockStart.gif
ExpandedBlockStart.gif#region 常用访问属性
              
        
private string _TableName;
ExpandedSubBlockStart.gif        
/// <summary>
        
/// 数据库表名
        
/// </summary>

        public string TableName
ExpandedSubBlockStart.gif        
{
            
get
ExpandedSubBlockStart.gif            
{
                
return _TableName;
            }

            
set
ExpandedSubBlockStart.gif            
{
                _TableName 
= value;
            }

        }

        
private string _ConnectionString;
ExpandedSubBlockStart.gif        
/// <summary>
        
/// 所属的表的数据库链接字符串
        
/// </summary>

        public string ConnectionString
ExpandedSubBlockStart.gif        
{
            
get
ExpandedSubBlockStart.gif            
{
                
return _ConnectionString;
            }

            
set
ExpandedSubBlockStart.gif            
{
                _ConnectionString 
= value;
            }

        }

        
private MDataColumn _Columns = null;
ExpandedSubBlockStart.gif        
/// <summary>
        
/// 数据列集合
        
/// </summary>

        public MDataColumn Columns
ExpandedSubBlockStart.gif        
{
            
get
ExpandedSubBlockStart.gif            
{
                
if (_Columns == null)
ExpandedSubBlockStart.gif                
{
                    _Columns 
= new MDataColumn(base.Count);
                    
for (int i = 0; i < base.Count; i++)
ExpandedSubBlockStart.gif                    
{
                        _Columns.Add(
base[i].DataStruct);
                    }

                }

                
return _Columns;
            }

        }

        
#endregion

 

OK,此至属性也加完了,顺便加个克隆方法

ExpandedBlockStart.gif
ExpandedBlockStart.gif#region 克隆
        
public MDataRow Clone()
ExpandedSubBlockStart.gif        
{
            MDataRow dataRow 
= new MDataRow(base.Count);

            
for (int i = 0; i < base.Count; i++)
ExpandedSubBlockStart.gif            
{
                MDataCellStruct mcb 
= base[i].DataStruct;
                MDataCell mdc 
= new MDataCell(ref mcb);
                mdc.Value 
= base[i].Value;
                dataRow.Add(mdc);
            }

            dataRow.ConnectionString 
= this.ConnectionString;
            dataRow.TableName 
= this.TableName;
            
return dataRow;
        }

        
#endregion

 

 

至此,数据行也构建完成了

相关文章
|
SQL PHP 数据库
Yii2.0框架中的Active Record和数据访问对象(DAO)有什么区别?在实际开发中该如何选择?
Yii2.0框架中的Active Record和数据访问对象(DAO)有什么区别?在实际开发中该如何选择?
|
SQL 缓存 Oracle
1.NetDh框架之数据库操作层--Dapper简单封装,可支持多库实例、多种数据库类型等(附源码和示例代码)
1.NetDh框架开始的需求场景 需求场景: 1.之前公司有不同.net项目组,有的项目是用SqlServer做数据库,有的项目是用Oracle,后面也有可能会用到Mysql等,而且要考虑后续扩展成主从库、多库的需求。
3594 0