代码拉取完成,页面将自动刷新
同步操作将从 Microi吾码/Dos.ORM 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
/*************************************************************************
*
* Hxj.Data
*
* 2010-2-10
*
* steven hu
*
* Support: http://www.cnblogs.com/huxj
*
*
* Change History:
*
*
**************************************************************************/
using System;
using System.Collections.Generic;
using System.Data;
using Dos.ORM;
namespace Dos.ORM
{
/// <summary>
/// 实体属性修改记录 (字段修改记录)
/// </summary>
[Serializable]
public class ModifyField
{
private Field field;
private object oldValue;
private object newValue;
/// <summary>
/// 字段
/// </summary>
public Field Field { get { return field; } }
/// <summary>
/// 原始值
/// </summary>
public object OldValue { get { return oldValue; } set { oldValue = value; } }
/// <summary>
/// 新值
/// </summary>
public object NewValue { get { return newValue; } set { newValue = value; } }
/// <summary>
/// 构造函数
/// </summary>
/// <param name="field">字段</param>
/// <param name="oldValue">旧值</param>
/// <param name="newValue">新值</param>
public ModifyField(Field field, object oldValue, object newValue)
{
this.field = field;
this.oldValue = oldValue;
this.newValue = newValue;
}
}
/// <summary>
/// 实体信息
/// </summary>
[Serializable]
public abstract class Entity
{
/// <summary>
/// 表名
/// </summary>
private string tableName;
/// <summary>
/// 是否
/// </summary>
private bool isAttached;
/// <summary>
/// 修改的字段集合
/// </summary>
private List<ModifyField> modifyFields = new List<ModifyField>();
#region 构造函数
/// <summary>
/// 构造函数
/// </summary>
public Entity() { }
/// <summary>
/// 构造函数
/// </summary>
/// <param name="tableName">表名</param>
public Entity(string tableName)
{
this.tableName = tableName;
this.isAttached = false;
}
#endregion
/// <summary>
/// 将实体置为修改状态
/// </summary>
public void Attach()
{
this.isAttached = true;
}
/// <summary>
/// 将实体置为插入状态
/// </summary>
public void DeAttach()
{
this.isAttached = false;
}
/// <summary>
/// 记录 字段修改
/// </summary>
/// <param name="field"></param>
/// <param name="oldValue"></param>
/// <param name="newValue"></param>
public void OnPropertyValueChange(Field field, object oldValue, object newValue)
{
if (isAttached)
{
if (null == oldValue && null == newValue)
return;
if (null != oldValue && null != newValue && newValue.Equals(oldValue))
{
return;
#region HXJ HACK
Type t = newValue.GetType();
if (t == typeof(int))
{
if ((int)newValue != 0)
return;
}
else if (t == typeof(decimal))
{
if (default(decimal) != (decimal)newValue)
return;
}
else if (t == typeof(long))
{
if (default(long) != (long)newValue)
return;
}
else if (t == typeof(bool))
{
if (default(bool) != (bool)newValue)
return;
}
else if (t == typeof(Single))
{
if (default(Single) != (Single)newValue)
return;
}
else
{
return;
}
#endregion
}
lock (modifyFields)
{
bool ishave = false;
foreach (ModifyField mf in modifyFields)
{
if (mf.Field.PropertyName.ToLower().Equals(field.PropertyName.ToLower()))
{
mf.NewValue = newValue;
ishave = true;
break;
}
}
if (!ishave)
{
ModifyField modifyField = new ModifyField(field, oldValue, newValue);
modifyFields.Add(modifyField);
}
}
}
}
/// <summary>
/// 清除修改记录
/// </summary>
public void ClearModifyFields()
{
modifyFields.Clear();
}
/// <summary>
/// Sets the property values.
/// </summary>
/// <param name="reader">The reader.</param>
public virtual void SetPropertyValues(IDataReader reader) { }
/// <summary>
/// Sets the property values.
/// </summary>
/// <param name="row">The row.</param>
public virtual void SetPropertyValues(DataRow row) { }
/// <summary>
/// GetFields
/// </summary>
/// <returns></returns>
public virtual Field[] GetFields() { return null; }
/// <summary>
/// GetValues
/// </summary>
/// <returns></returns>
public virtual object[] GetValues() { return null; }
/// <summary>
/// GetPrimaryKeyFields
/// </summary>
/// <returns></returns>
public virtual Field[] GetPrimaryKeyFields() { return null; }
/// <summary>
/// 标识列
/// </summary>
public virtual Field GetIdentityField()
{
return null;
}
/// <summary>
/// 标识列的名称(例如如Oracle中Sequence名称)
/// </summary>
/// <returns></returns>
public virtual string GetSequence()
{
return null;
}
/// <summary>
/// 返回修改记录
/// </summary>
public List<ModifyField> GetModifyFields()
{
return modifyFields;
}
/// <summary>
/// 是否只读
/// </summary>
public virtual bool IsReadOnly()
{
return false;
}
/// <summary>
/// 获取表名
/// </summary>
public string GetTableName()
{
return tableName;
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。