mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-19 18:22:23 +08:00
Update .net core project
This commit is contained in:
@@ -12,7 +12,7 @@ namespace SqlSugar
|
|||||||
|
|
||||||
private static bool IsDefaultValue(object pvValue)
|
private static bool IsDefaultValue(object pvValue)
|
||||||
{
|
{
|
||||||
return pvValue == null || pvValue == UtilMethods.GetDefaultValue(pvValue.GetType());
|
return pvValue == null || pvValue.Equals(UtilMethods.GetDefaultValue(pvValue.GetType()));
|
||||||
}
|
}
|
||||||
private void InitParentList()
|
private void InitParentList()
|
||||||
{
|
{
|
||||||
@@ -81,10 +81,32 @@ namespace SqlSugar
|
|||||||
children = children.Distinct().ToList();
|
children = children.Distinct().ToList();
|
||||||
var x = this._Context.Storageable(children).WhereColumns(new string[] { pkColumn.PropertyName }).ToStorage();
|
var x = this._Context.Storageable(children).WhereColumns(new string[] { pkColumn.PropertyName }).ToStorage();
|
||||||
var insertData = children = x.InsertList.Select(it => it.Item).ToList();
|
var insertData = children = x.InsertList.Select(it => it.Item).ToList();
|
||||||
if (pkColumn.IsIdentity)
|
if (pkColumn.IsIdentity||pkColumn.OracleSequenceName.HasValue())
|
||||||
{
|
{
|
||||||
InsertIdentity(insertData);
|
InsertIdentity(insertData);
|
||||||
}
|
}
|
||||||
|
else if (pkColumn.UnderType==UtilConstants.LongType&&pkColumn.IsIdentity==false)
|
||||||
|
{
|
||||||
|
foreach (var child in insertData)
|
||||||
|
{
|
||||||
|
if (IsDefaultValue(pkColumn.PropertyInfo.GetValue(child)))
|
||||||
|
{
|
||||||
|
pkColumn.PropertyInfo.SetValue(child, SnowFlakeSingle.Instance.NextId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this._Context.Insertable(insertData).ExecuteCommand();
|
||||||
|
}
|
||||||
|
else if (pkColumn.UnderType == UtilConstants.GuidType && pkColumn.IsIdentity == false)
|
||||||
|
{
|
||||||
|
foreach (var child in insertData)
|
||||||
|
{
|
||||||
|
if (IsDefaultValue(pkColumn.PropertyInfo.GetValue(child)))
|
||||||
|
{
|
||||||
|
pkColumn.PropertyInfo.SetValue(child, Guid.NewGuid());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this._Context.Insertable(insertData).ExecuteCommand();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
this._Context.Insertable(insertData).ExecuteCommand();
|
this._Context.Insertable(insertData).ExecuteCommand();
|
||||||
|
@@ -41,9 +41,8 @@ namespace SqlSugar
|
|||||||
EntityColumnInfo parentPkColumn = _ParentPkColumn;
|
EntityColumnInfo parentPkColumn = _ParentPkColumn;
|
||||||
if (_ParentPkColumn == null)
|
if (_ParentPkColumn == null)
|
||||||
{
|
{
|
||||||
_ParentPkColumn= this._ParentEntity.Columns.FirstOrDefault(it => it.IsPrimarykey);
|
parentPkColumn= _ParentPkColumn = this._ParentEntity.Columns.FirstOrDefault(it => it.IsPrimarykey);
|
||||||
}
|
}
|
||||||
|
|
||||||
return parentPkColumn;
|
return parentPkColumn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -13,6 +13,7 @@ namespace SqlSugar
|
|||||||
var parentEntity = _ParentEntity;
|
var parentEntity = _ParentEntity;
|
||||||
var parentList = _ParentList;
|
var parentList = _ParentList;
|
||||||
var parentColumn = parentEntity.Columns.FirstOrDefault(it => it.PropertyName == nav.Navigat.Name);
|
var parentColumn = parentEntity.Columns.FirstOrDefault(it => it.PropertyName == nav.Navigat.Name);
|
||||||
|
var parentPkColumn = parentEntity.Columns.FirstOrDefault(it => it.IsPrimarykey);
|
||||||
var thisEntity = this._Context.EntityMaintenance.GetEntityInfo<TChild>();
|
var thisEntity = this._Context.EntityMaintenance.GetEntityInfo<TChild>();
|
||||||
EntityColumnInfo thisPkColumn = GetPkColumnByNav(thisEntity, nav);
|
EntityColumnInfo thisPkColumn = GetPkColumnByNav(thisEntity, nav);
|
||||||
Check.Exception(thisPkColumn == null, $" Navigate {parentEntity.EntityName} : {name} is error ", $"导航实体 {parentEntity.EntityName} 属性 {name} 配置错误");
|
Check.Exception(thisPkColumn == null, $" Navigate {parentEntity.EntityName} : {name} is error ", $"导航实体 {parentEntity.EntityName} 属性 {name} 配置错误");
|
||||||
@@ -31,6 +32,17 @@ namespace SqlSugar
|
|||||||
navPropertyValue = pkValue;
|
navPropertyValue = pkValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (IsDefaultValue(navPropertyValue))
|
||||||
|
{
|
||||||
|
InsertDatas<TChild>(new List<TChild>() { childItem }, thisPkColumn);
|
||||||
|
navPropertyValue = thisPkColumn.PropertyInfo.GetValue(childItem);
|
||||||
|
parentColumn.PropertyInfo.SetValue(parent,navPropertyValue);
|
||||||
|
this._Context.Updateable<DbTableInfo>
|
||||||
|
().AS(parentEntity.DbTableName)
|
||||||
|
.SetColumns(parentColumn.DbColumnName, navPropertyValue)
|
||||||
|
.Where(parentPkColumn.DbColumnName,"=", parentPkColumn.PropertyInfo.GetValue(parent)).ExecuteCommand();
|
||||||
|
}
|
||||||
|
|
||||||
thisPkColumn.PropertyInfo.SetValue(childItem, navPropertyValue);
|
thisPkColumn.PropertyInfo.SetValue(childItem, navPropertyValue);
|
||||||
childList.Add(childItem);
|
childList.Add(childItem);
|
||||||
}
|
}
|
||||||
|
@@ -131,7 +131,8 @@ namespace SqlSugar
|
|||||||
lastShortName = shortName;
|
lastShortName = shortName;
|
||||||
formInfo = item;
|
formInfo = item;
|
||||||
}
|
}
|
||||||
queryable.Select($" COUNT(1)");
|
var isAny = (memberInfo.Expression as MethodCallExpression).Method.Name == "Any";
|
||||||
|
queryable.Select(isAny ? "1" : " COUNT(1) ");
|
||||||
var last = subInfos.First();
|
var last = subInfos.First();
|
||||||
var FirstPkColumn = last.ThisEntityInfo.Columns.FirstOrDefault(it => it.IsPrimarykey);
|
var FirstPkColumn = last.ThisEntityInfo.Columns.FirstOrDefault(it => it.IsPrimarykey);
|
||||||
Check.ExceptionEasy(FirstPkColumn == null, $"{ last.ThisEntityInfo.EntityName} need PrimayKey", $"使用导航属性{ last.ThisEntityInfo.EntityName} 缺少主键");
|
Check.ExceptionEasy(FirstPkColumn == null, $"{ last.ThisEntityInfo.EntityName} need PrimayKey", $"使用导航属性{ last.ThisEntityInfo.EntityName} 缺少主键");
|
||||||
@@ -140,9 +141,9 @@ namespace SqlSugar
|
|||||||
queryable.Where($" {this.shorName}.{ queryable.SqlBuilder.GetTranslationColumnName(PkColumn.DbColumnName)} = {masterShortName}.{queryable.SqlBuilder.GetTranslationColumnName(FirstPkColumn.DbColumnName)} ");
|
queryable.Where($" {this.shorName}.{ queryable.SqlBuilder.GetTranslationColumnName(PkColumn.DbColumnName)} = {masterShortName}.{queryable.SqlBuilder.GetTranslationColumnName(FirstPkColumn.DbColumnName)} ");
|
||||||
queryable.WhereIF(this.whereSql.HasValue(), GetWhereSql1(this.whereSql,lastShortName, joinInfos, queryable.SqlBuilder));
|
queryable.WhereIF(this.whereSql.HasValue(), GetWhereSql1(this.whereSql,lastShortName, joinInfos, queryable.SqlBuilder));
|
||||||
MapperSql.Sql = $"( {queryable.ToSql().Key} ) ";
|
MapperSql.Sql = $"( {queryable.ToSql().Key} ) ";
|
||||||
if ((memberInfo.Expression as MethodCallExpression).Method.Name == "Any")
|
if (isAny)
|
||||||
{
|
{
|
||||||
MapperSql.Sql = $"( {MapperSql.Sql}>0 ) ";
|
MapperSql.Sql = $" EXISTS( {MapperSql.Sql}) ";
|
||||||
|
|
||||||
}
|
}
|
||||||
return MapperSql;
|
return MapperSql;
|
||||||
|
Reference in New Issue
Block a user