|
/// <summary>
/// 描述主从表的主表的数据实体
/// </summary>
/// <typeparam name="ID">主表实体的主键ID</typeparam>
/// <typeparam name="P">主表</typeparam>
/// <typeparam name="F">从表</typeparam>
public abstract class PrimaryDataEntityBase<ID, P, F> : EntityBase<P, ID>
where P : PrimaryDataEntityBase<ID, P, F>
where F : ForeignDataEntityBase<ID, P, F>
{
/// <summary>
/// PrimaryDataEntityBase的默认构造函数
/// </summary>
public PrimaryDataEntityBase()
{
}
/// <summary>
/// 按table的第一行数据进行属性的初始化
/// </summary>
/// <param name="table"></param>
public PrimaryDataEntityBase(System.Data.DataTable table)
: this(table, 0)
{
}
/// <summary>
/// 按table的指定行数据进行属性的初始化
/// </summary>
/// <param name="table"></param>
/// <param name="indexRow"></param>
public PrimaryDataEntityBase(System.Data.DataTable table, int indexRow)
: base(table, indexRow)
{
}
/// <summary>
/// 装载当前从表的详细项
/// </summary>
protected abstract List<F> LoadDetailedItems();
/// <summary>
/// 存放外键表的数据项目的集合
/// </summary>
protected List<F> items = new List<F>();
/// <summary>
/// 获取外键表数据的集合
/// </summary>
public List<F> DetailedItems
{
get
{
return LoadDetailedItems();
}
}
/// <summary>
/// 返回外键表的数据项目数量
/// </summary>
public int DetailedItemCount
{
get
{
return items.Count;
}
}
/// <summary>
/// 将一个外键实体加入集合
/// </summary>
/// <param name="item"></param>
/// <returns></returns>
public abstract void Add(F item);
/// <summary>
/// 从集合中移除一个外键实体
/// </summary>
/// <param name="item"></param>
public abstract void Remove(F item);
/// <summary>
/// 从集合中移除一个外键实体
/// </summary>
/// <param name="index"></param>
public abstract void RemoveAt(int index);
/// <summary>
/// 返回或设置匹配索引的订单详细项
/// </summary>
/// <param name="index"></param>
/// <returns></returns>
public abstract F this[int index]
{
set;
get;
}
}
|