mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-19 10:08:19 +08:00
Update .net core project
This commit is contained in:
@@ -12,7 +12,7 @@ namespace SqlSugar
|
||||
|
||||
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()
|
||||
{
|
||||
@@ -81,10 +81,32 @@ namespace SqlSugar
|
||||
children = children.Distinct().ToList();
|
||||
var x = this._Context.Storageable(children).WhereColumns(new string[] { pkColumn.PropertyName }).ToStorage();
|
||||
var insertData = children = x.InsertList.Select(it => it.Item).ToList();
|
||||
if (pkColumn.IsIdentity)
|
||||
if (pkColumn.IsIdentity||pkColumn.OracleSequenceName.HasValue())
|
||||
{
|
||||
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
|
||||
{
|
||||
this._Context.Insertable(insertData).ExecuteCommand();
|
||||
|
@@ -41,9 +41,8 @@ namespace SqlSugar
|
||||
EntityColumnInfo parentPkColumn = _ParentPkColumn;
|
||||
if (_ParentPkColumn == null)
|
||||
{
|
||||
_ParentPkColumn= this._ParentEntity.Columns.FirstOrDefault(it => it.IsPrimarykey);
|
||||
parentPkColumn= _ParentPkColumn = this._ParentEntity.Columns.FirstOrDefault(it => it.IsPrimarykey);
|
||||
}
|
||||
|
||||
return parentPkColumn;
|
||||
}
|
||||
|
||||
|
@@ -13,6 +13,7 @@ namespace SqlSugar
|
||||
var parentEntity = _ParentEntity;
|
||||
var parentList = _ParentList;
|
||||
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>();
|
||||
EntityColumnInfo thisPkColumn = GetPkColumnByNav(thisEntity, nav);
|
||||
Check.Exception(thisPkColumn == null, $" Navigate {parentEntity.EntityName} : {name} is error ", $"导航实体 {parentEntity.EntityName} 属性 {name} 配置错误");
|
||||
@@ -31,6 +32,17 @@ namespace SqlSugar
|
||||
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);
|
||||
childList.Add(childItem);
|
||||
}
|
||||
|
@@ -131,7 +131,8 @@ namespace SqlSugar
|
||||
lastShortName = shortName;
|
||||
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 FirstPkColumn = last.ThisEntityInfo.Columns.FirstOrDefault(it => it.IsPrimarykey);
|
||||
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.WhereIF(this.whereSql.HasValue(), GetWhereSql1(this.whereSql,lastShortName, joinInfos, queryable.SqlBuilder));
|
||||
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;
|
||||
|
Reference in New Issue
Block a user