mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-19 01:58:13 +08:00
Synchronization code
This commit is contained in:
@@ -362,6 +362,7 @@ namespace SqlSugar
|
|||||||
column.UpdateServerTime= sugarColumn.UpdateServerTime;
|
column.UpdateServerTime= sugarColumn.UpdateServerTime;
|
||||||
column.UpdateSql= sugarColumn.UpdateSql;
|
column.UpdateSql= sugarColumn.UpdateSql;
|
||||||
column.IsDisabledAlterColumn = sugarColumn.IsDisabledAlterColumn;
|
column.IsDisabledAlterColumn = sugarColumn.IsDisabledAlterColumn;
|
||||||
|
column.QuerySql = sugarColumn.QuerySql;
|
||||||
if (sugarColumn.IsJson && String.IsNullOrEmpty(sugarColumn.ColumnDataType))
|
if (sugarColumn.IsJson && String.IsNullOrEmpty(sugarColumn.ColumnDataType))
|
||||||
{
|
{
|
||||||
if (this.Context.CurrentConnectionConfig.DbType == DbType.PostgreSQL)
|
if (this.Context.CurrentConnectionConfig.DbType == DbType.PostgreSQL)
|
||||||
|
@@ -245,6 +245,12 @@ namespace SqlSugar
|
|||||||
CSharpTypeName = bColumn.PropertyInfo.PropertyType.Name
|
CSharpTypeName = bColumn.PropertyInfo.PropertyType.Name
|
||||||
}));
|
}));
|
||||||
var sql = GetWhereSql();
|
var sql = GetWhereSql();
|
||||||
|
if (sql.SelectString == null)
|
||||||
|
{
|
||||||
|
var columns = bEntityInfo.Columns.Where(it => !it.IsIgnore)
|
||||||
|
.Select(it => GetOneToManySelectByColumnInfo(it)).ToList();
|
||||||
|
sql.SelectString = String.Join(",", columns);
|
||||||
|
}
|
||||||
var bList = selector(bDb.Queryable<object>().AS(bEntityInfo.DbTableName).ClearFilter(QueryBuilder.RemoveFilters).Filter(this.QueryBuilder?.IsDisabledGobalFilter == true ? null : bEntityInfo.Type).AddParameters(sql.Parameters).Where(conditionalModels2).WhereIF(sql.WhereString.HasValue(),sql.WhereString).Select(sql.SelectString).OrderByIF(sql.OrderByString.HasValue(),sql.OrderByString));
|
var bList = selector(bDb.Queryable<object>().AS(bEntityInfo.DbTableName).ClearFilter(QueryBuilder.RemoveFilters).Filter(this.QueryBuilder?.IsDisabledGobalFilter == true ? null : bEntityInfo.Type).AddParameters(sql.Parameters).Where(conditionalModels2).WhereIF(sql.WhereString.HasValue(),sql.WhereString).Select(sql.SelectString).OrderByIF(sql.OrderByString.HasValue(),sql.OrderByString));
|
||||||
if (bList.HasValue())
|
if (bList.HasValue())
|
||||||
{
|
{
|
||||||
@@ -362,7 +368,7 @@ namespace SqlSugar
|
|||||||
if (sqlObj.SelectString == null)
|
if (sqlObj.SelectString == null)
|
||||||
{
|
{
|
||||||
var columns = navEntityInfo.Columns.Where(it => !it.IsIgnore)
|
var columns = navEntityInfo.Columns.Where(it => !it.IsIgnore)
|
||||||
.Select(it => QueryBuilder.Builder.GetTranslationColumnName(it.DbColumnName) + " AS " + QueryBuilder.Builder.GetTranslationColumnName(it.PropertyName)).ToList();
|
.Select(it => GetOneToOneSelectByColumnInfo(it)).ToList();
|
||||||
sqlObj.SelectString = String.Join(",", columns);
|
sqlObj.SelectString = String.Join(",", columns);
|
||||||
}
|
}
|
||||||
var navList = selector(db.Queryable<object>().ClearFilter(QueryBuilder.RemoveFilters).Filter(navPkColumn.IsPrimarykey ? null : this.QueryBuilder?.IsDisabledGobalFilter == true ? null : navEntityInfo.Type).AS(GetDbTableName(navEntityInfo))
|
var navList = selector(db.Queryable<object>().ClearFilter(QueryBuilder.RemoveFilters).Filter(navPkColumn.IsPrimarykey ? null : this.QueryBuilder?.IsDisabledGobalFilter == true ? null : navEntityInfo.Type).AS(GetDbTableName(navEntityInfo))
|
||||||
@@ -396,7 +402,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OneToMany(List<object> list, Func<ISugarQueryable<object>, List<object>> selector, EntityInfo listItemEntity, System.Reflection.PropertyInfo navObjectNamePropety, EntityColumnInfo navObjectNameColumnInfo)
|
private void OneToMany(List<object> list, Func<ISugarQueryable<object>, List<object>> selector, EntityInfo listItemEntity, System.Reflection.PropertyInfo navObjectNamePropety, EntityColumnInfo navObjectNameColumnInfo)
|
||||||
{
|
{
|
||||||
var navEntity = navObjectNameColumnInfo.PropertyInfo.PropertyType.GetGenericArguments()[0];
|
var navEntity = navObjectNameColumnInfo.PropertyInfo.PropertyType.GetGenericArguments()[0];
|
||||||
@@ -438,7 +444,7 @@ namespace SqlSugar
|
|||||||
if (sqlObj.SelectString == null)
|
if (sqlObj.SelectString == null)
|
||||||
{
|
{
|
||||||
var columns = navEntityInfo.Columns.Where(it => !it.IsIgnore)
|
var columns = navEntityInfo.Columns.Where(it => !it.IsIgnore)
|
||||||
.Select(it => QueryBuilder.Builder.GetTranslationColumnName(it.DbColumnName) + " AS " + QueryBuilder.Builder.GetTranslationColumnName(it.PropertyName)).ToList();
|
.Select(it => GetOneToManySelectByColumnInfo(it)).ToList();
|
||||||
sqlObj.SelectString = String.Join(",", columns);
|
sqlObj.SelectString = String.Join(",", columns);
|
||||||
}
|
}
|
||||||
var navList = selector(childDb.Queryable<object>(sqlObj.TableShortName).AS(GetDbTableName(navEntityInfo)).ClearFilter(QueryBuilder.RemoveFilters).Filter(this.QueryBuilder?.IsDisabledGobalFilter == true ? null : navEntityInfo.Type).AddParameters(sqlObj.Parameters).Where(conditionalModels).WhereIF(sqlObj.WhereString.HasValue(), sqlObj.WhereString).WhereIF(navObjectNameColumnInfo?.Navigat?.WhereSql!=null, navObjectNameColumnInfo?.Navigat?.WhereSql).Select(sqlObj.SelectString).OrderByIF(sqlObj.OrderByString.HasValue(), sqlObj.OrderByString));
|
var navList = selector(childDb.Queryable<object>(sqlObj.TableShortName).AS(GetDbTableName(navEntityInfo)).ClearFilter(QueryBuilder.RemoveFilters).Filter(this.QueryBuilder?.IsDisabledGobalFilter == true ? null : navEntityInfo.Type).AddParameters(sqlObj.Parameters).Where(conditionalModels).WhereIF(sqlObj.WhereString.HasValue(), sqlObj.WhereString).WhereIF(navObjectNameColumnInfo?.Navigat?.WhereSql!=null, navObjectNameColumnInfo?.Navigat?.WhereSql).Select(sqlObj.SelectString).OrderByIF(sqlObj.OrderByString.HasValue(), sqlObj.OrderByString));
|
||||||
@@ -922,5 +928,22 @@ namespace SqlSugar
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private string GetOneToManySelectByColumnInfo(EntityColumnInfo it)
|
||||||
|
{
|
||||||
|
if (it.QuerySql.HasValue())
|
||||||
|
{
|
||||||
|
return it.QuerySql + " AS " + QueryBuilder.Builder.GetTranslationColumnName(it.PropertyName);
|
||||||
|
}
|
||||||
|
return QueryBuilder.Builder.GetTranslationColumnName(it.DbColumnName) + " AS " + QueryBuilder.Builder.GetTranslationColumnName(it.PropertyName);
|
||||||
|
}
|
||||||
|
private string GetOneToOneSelectByColumnInfo(EntityColumnInfo it)
|
||||||
|
{
|
||||||
|
if (it.QuerySql.HasValue())
|
||||||
|
{
|
||||||
|
return it.QuerySql + " AS " + QueryBuilder.Builder.GetTranslationColumnName(it.PropertyName);
|
||||||
|
}
|
||||||
|
return QueryBuilder.Builder.GetTranslationColumnName(it.DbColumnName) + " AS " + QueryBuilder.Builder.GetTranslationColumnName(it.PropertyName);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -907,7 +907,7 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
columns = columns.Where(c => !this.IgnoreColumns.Any(i => c.PropertyName.Equals(i, StringComparison.CurrentCultureIgnoreCase) || c.DbColumnName.Equals(i, StringComparison.CurrentCultureIgnoreCase))).ToList();
|
columns = columns.Where(c => !this.IgnoreColumns.Any(i => c.PropertyName.Equals(i, StringComparison.CurrentCultureIgnoreCase) || c.DbColumnName.Equals(i, StringComparison.CurrentCultureIgnoreCase))).ToList();
|
||||||
}
|
}
|
||||||
result = string.Join(",", columns.Select(it => pre + Builder.GetTranslationColumnName(it.EntityName, it.PropertyName)));
|
result = string.Join(",", columns.Select(it => GetSelectStringByColumnInfo(it, pre)));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -920,6 +920,16 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private string GetSelectStringByColumnInfo(EntityColumnInfo it, string pre)
|
||||||
|
{
|
||||||
|
if (it.QuerySql.HasValue())
|
||||||
|
{
|
||||||
|
return it.QuerySql+ " AS "+ Builder.GetTranslationColumnName(it.EntityName, it.PropertyName);
|
||||||
|
}
|
||||||
|
return pre + Builder.GetTranslationColumnName(it.EntityName, it.PropertyName);
|
||||||
|
}
|
||||||
|
|
||||||
public virtual string GetWhereValueString
|
public virtual string GetWhereValueString
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
@@ -47,5 +47,6 @@ namespace SqlSugar
|
|||||||
public string UpdateSql { get; set; }
|
public string UpdateSql { get; set; }
|
||||||
public object ExtendedAttribute { get; set; }
|
public object ExtendedAttribute { get; set; }
|
||||||
public bool IsDisabledAlterColumn { get; set; }
|
public bool IsDisabledAlterColumn { get; set; }
|
||||||
|
public string QuerySql { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -210,6 +210,7 @@ namespace SqlSugar
|
|||||||
public int CreateTableFieldSort { get; set; }
|
public int CreateTableFieldSort { get; set; }
|
||||||
public bool InsertServerTime { get; set; }
|
public bool InsertServerTime { get; set; }
|
||||||
public string InsertSql { get; set; }
|
public string InsertSql { get; set; }
|
||||||
|
public string QuerySql { get; set; }
|
||||||
public bool UpdateServerTime { get; set; }
|
public bool UpdateServerTime { get; set; }
|
||||||
public string UpdateSql { get; set; }
|
public string UpdateSql { get; set; }
|
||||||
public object ExtendedAttribute{ get; set; }
|
public object ExtendedAttribute{ get; set; }
|
||||||
|
Reference in New Issue
Block a user