📄 entity.cs
字号:
using System;
using System.Collections;
using System.Data;
namespace EntityMapping
{
/// <summary>
/// Entity 的摘要说明。
/// </summary>
public class Entity
{
public Entity()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 记录着实体包括的属性和属性值.
/// Hashtable的key对应数据库中的字段的名称,value对应一条记录的值。
/// </summary>
private Hashtable m_Attribute = new Hashtable();
/// <summary>
/// 实体对应的表名
/// </summary>
private string m_TableName;
/// <summary>
/// 实体在实体集合中的索引
/// </summary>
private int m_IndexInEntitySet;
/// <summary>
/// 获取实体包括的属性和属性值.
/// </summary>
public Hashtable Attribute
{
get
{
return m_Attribute;
}
}
/// <summary>
/// 获取属性的个数
/// </summary>
public int AttributeCount
{
get
{
return m_Attribute.Count;
}
}
/// <summary>
/// 获取实体对应表名
/// </summary>
public string TableName
{
get
{
return m_TableName;
}
set
{
this.m_TableName = value;
}
}
/// <summary>
/// 获取实体在实体集合中的索引
/// </summary>
public int IndexInEntitySet
{
get
{
return m_IndexInEntitySet;
}
}
/// <summary>
/// 给定的属性是否为空
/// </summary>
/// <param name="key">属性名</param>
/// <returns>为空返回true,否则返回false</returns>
public bool IsNull(string key)
{
object obj = m_Attribute[key];
if(obj == null || obj == System.DBNull.Value)
{
return true;
}
else
{
string str = obj as string;
if(str != null && str.Length == 0)
{
return true;
}
else
{
return false;
}
}
}
//
// public void SetAttribute(Hashtable DBAttribute)
// {
// this.m_Attribute = DBAttribute;
// }
/// <summary>
/// 设置实体的字段属性
/// </summary>
/// <param name="FieldKey">字段名称</param>
/// <param name="FieldValue">字段值</param>
public void SetAttribute(string FieldKey,object FieldValue)
{
this.m_Attribute.Add(FieldKey.ToUpper(),FieldValue);
}
/// <summary>
/// 获取实体对应表名
/// </summary>
internal void SetTableName(string TableName)
{
this.m_TableName = TableName;
}
/// <summary>
/// 设置实体在对应实体集合中的下标
/// </summary>
/// <param name="index">下标</param>
internal void SetIndexInEntitySet(int index)
{
this.m_IndexInEntitySet = index;
}
/// <summary>
/// 填充实体属性数据
/// </summary>
/// <param name="names">属性名列表</param>
/// <param name="values">属性值列表</param>
/// <param name="index">实体在对应实体集合中的索引号</param>
internal void FillData(object[] names,object[] values,int index)
{
//长度不对,不于填充
if(names.Length != values.Length)
{
return;
}
for(int i = 0;i < names.Length;i++)
{
//已经包括该属性
if(m_Attribute.Contains(names[i].ToString()))
{
this.m_Attribute[names[i].ToString()] = values[i];
}
else
{
this.m_Attribute.Add(names[i].ToString(),values[i]);
}
}
m_IndexInEntitySet = index;
}
/// <summary>
/// 从DataTable向实体中填充数据
/// </summary>
/// <param name="ds_Temp">包含数据的DataTable</param>
/// <param name="index">填充记录在DataTable中的相对位置</param>
internal void FillData(DataTable ds_Temp,int index)
{
string[] sField = new string[ds_Temp.Columns.Count];
object[] sValue = new object[ds_Temp.Columns.Count];
if(sField.Length != 0)
{
ds_Temp.Columns.CopyTo(sField,0);
sValue = ds_Temp.Rows[index].ItemArray;
}
this.FillData(sField,sValue,index);
this.m_TableName = ds_Temp.TableName;
this.m_IndexInEntitySet = index;
}
/// <summary>
/// 获取实体的所有属性名
/// </summary>
/// <returns>返回属性名数组</returns>
public string[] GetFieldsName()
{
string[] names = new string[m_Attribute.Count];
if(names.Length != 0)
{
m_Attribute.Keys.CopyTo(names,0);
}
return names;
}
/// <summary>
/// 获取所有的实体属性值
/// </summary>
/// <returns>返回属性值数组</returns>
public object[] GetFieldsValue()
{
object[] values = new object[m_Attribute.Count];
if(values.Length != 0)
{
m_Attribute.Values.CopyTo(values,0);
}
return values;
}
/// <summary>
/// 获取所有主键信息
/// Hashtable的Key为主键字段名,Value为记录对应字段的值
/// </summary>
/// <returns>返回存储主键信息的Hashtable</returns>
public Hashtable GetPKAttributes()
{
// {
// Environment.EntityInfo intityInfo = Environment.RunTime.GetRunTime().GetEntityInfo(m_TableName);
//
// if(intityInfo == null)
// {
//
// return null;
// }
//
Hashtable pkNames = new Hashtable();
// foreach(string pkName in intityInfo.PKList)
// {
// pkNames.Add(pkName,m_Attribute[pkName]);
// }
return pkNames;
}
/// <summary>
/// 由字段名获取映射名
/// </summary>
/// <param name="dbName">字段名</param>
/// <returns>映射名</returns>
public string GetMappingName(string dbName)
{
return null ;//m_MappingRelation.GetMappingName(dbName);
}
/// <summary>
/// 由映射名获取字段名
/// </summary>
/// <param name="mappingName">映射名</param>
/// <returns>字段名</returns>
public string GetDBName(string mappingName)
{
return null; //m_MappingRelation.GetDBField(mappingName);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -