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