namespace IStation.Entity
{
///
/// 分表规则
///
public class ScheduleCombineSubTableService : ISplitTableService
{
///
/// 获取所有的数据库中的表
///
///
///
///
///
///
public List GetAllTables(ISqlSugarClient db, EntityInfo EntityInfo, List tableInfos)
{
List result = new List();
foreach (var item in tableInfos)
{
if (item.Name.Contains("_Cb_")) //区分标识如果不用正则符复杂一些,防止找错表
{
SplitTableInfo data = new SplitTableInfo()
{
TableName = item.Name //要用item.name不要写错了
};
result.Add(data);
}
}
return result.OrderBy(it => it.TableName).ToList();//打断点看一下有没有查出所有分表
}
///
///
///
///
///
///
///
///
public object GetFieldValue(ISqlSugarClient db, EntityInfo entityInfo, SplitType splitType, object entityValue)
{
var splitColumn = entityInfo.Columns.FirstOrDefault(it => it.PropertyInfo.GetCustomAttribute() != null);
return splitColumn.PropertyInfo.GetValue(entityValue, null);
}
///
///
///
///
///
///
public string GetTableName(ISqlSugarClient db, EntityInfo EntityInfo)
{
return EntityInfo.DbTableName + "_Cb";
}
public string GetTableName(ISqlSugarClient db, EntityInfo EntityInfo, SplitType type)
{
return EntityInfo.DbTableName + "_Cb";
}
///
/// 确定生成数据库表的时候,表的名称
///
///
///
///
///
///
public string GetTableName(ISqlSugarClient db, EntityInfo entityInfo, SplitType splitType, object fieldValue)
{
return entityInfo.DbTableName + "_Cb_" + fieldValue.ToString();
}
}
}