using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Ant.ORM
{
#region 多表显示字段实体定义
///
/// 显示字段类
///
public class MakeShowFields
{
public Dictionary FieldList = new Dictionary();
private FieldColumnsList fieldcolumnlist;
private static object lockHelper = new object();
private static volatile MakeShowFields instance = null;
public MakeShowFields()
{
fieldcolumnlist = new FieldColumnsList();
}
public static MakeShowFields Instance
{
get
{
if (instance == null)
{
lock (lockHelper)
{
if (instance == null)
{
instance = new MakeShowFields();
}
}
}
return instance;
}
}
///
/// 设置显示字段所属表
///
///
public void SetTableName()
{
fieldcolumnlist = new FieldColumnsList();
fieldcolumnlist.TableName = typeof(T).Name;
}
#region IDictionary 成员
///
/// 向集合中添加元素
///
///
///
public void Add(Enum filed, string asname)
{
FieldColumns colum = new FieldColumns();
colum.FieldColumn = filed.ToString();
colum.FieldAsName = asname;
if (fieldcolumnlist.FieldList.IsNull())
fieldcolumnlist.FieldList = new List();
fieldcolumnlist.FieldList.Add(colum);
if (!Contains(fieldcolumnlist.TableName))
FieldList.Add(fieldcolumnlist.TableName, fieldcolumnlist);
else
FieldList[fieldcolumnlist.TableName] = fieldcolumnlist;
}
///
/// 向集合中添加元素
///
///
///
public void Add(params Enum[] fileds)
{
foreach(var filed in fileds)
{
FieldColumns colum = new FieldColumns();
colum.FieldColumn = filed.ToString();
if (fieldcolumnlist.FieldList.IsNull())
fieldcolumnlist.FieldList = new List();
fieldcolumnlist.FieldList.Add(colum);
if (!Contains(fieldcolumnlist.TableName))
FieldList.Add(fieldcolumnlist.TableName, fieldcolumnlist);
else
{
FieldList[fieldcolumnlist.TableName] = fieldcolumnlist;
}
}
}
#region 不用了
/////
///// 向集合中添加元素
/////
/////
/////
//public void Add(string filed, string asname)
//{
// FieldColumns colum = new FieldColumns();
// colum.FieldColumn = filed;
// colum.FieldAsName = asname;
// if (list.FieldList.IsNull())
// list.FieldList = new List();
// list.FieldList.Add(colum);
// if (!Contains(list.TableName))
// FieldList.Add(list.TableName, list);
// else
// FieldList[list.TableName] = list;
//}
/////
///// 向集合中添加元素
/////
/////
/////
//public void Add(string filed)
//{
// FieldColumns colum = new FieldColumns();
// colum.FieldColumn = filed;
// if (list.FieldList.IsNull())
// list.FieldList = new List();
// list.FieldList.Add(colum);
// if (!Contains(list.TableName))
// {
// FieldList.Add(list.TableName, list);
// }
// else
// FieldList[list.TableName] = list;
//}
#endregion
///
/// 移除集合中所有元素
///
public void Clear()
{
FieldList.Clear();
}
///
/// 判断集合中是否有该元素
///
///
/// 有返true;没有返回false
public bool Contains(string key)
{
return FieldList.ContainsKey(key);
}
public IDictionaryEnumerator GetEnumerator()
{
return FieldList.GetEnumerator();
}
///
/// 表
///
// public string TableName { get; set; }
public ICollection Keys
{
get { return FieldList.Keys; }
}
///
/// 移除集合中元素
///
///
public void Remove(string key)
{
FieldList.Remove(key);
}
///
/// 获取集合中值
///
public ICollection Values
{
get { return FieldList.Values; }
}
///
/// 获取key的值
///
///
///
public FieldColumnsList this[string key]
{
get
{
if (Contains(key))
return FieldList[key];
else
return null;
}
set
{
if (Contains(key))
FieldList[key] = value;
else
FieldList.Add(key, value);
}
}
#endregion
}
public class FieldColumnsList
{
///
/// 所有显示字段列表
///
public List FieldList
{
get;
set;
}
///
/// 表
///
public string TableName { get; set; }
}
public class FieldColumns
{
///
/// 列名
///
public string FieldColumn
{
get;
set;
}
///
/// 别名
///
public string FieldAsName
{
get;
set;
}
}
#endregion
}