mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-05-16 13:09:33 +08:00
Update .net core project
This commit is contained in:
parent
a63b99b4c7
commit
56a27525c0
@ -39,6 +39,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
ids.Add(parentValue);
|
ids.Add(parentValue);
|
||||||
}
|
}
|
||||||
|
DeleteMany(thisEntity, ids, thisFkColumn.DbColumnName);
|
||||||
this._Context.Deleteable<object>()
|
this._Context.Deleteable<object>()
|
||||||
.AS(thisEntity.DbTableName)
|
.AS(thisEntity.DbTableName)
|
||||||
.In(thisFkColumn.DbColumnName, ids.Distinct().ToList()).ExecuteCommand();
|
.In(thisFkColumn.DbColumnName, ids.Distinct().ToList()).ExecuteCommand();
|
||||||
@ -48,6 +49,31 @@ namespace SqlSugar
|
|||||||
SetNewParent<TChild>(thisEntity, thisPkColumn);
|
SetNewParent<TChild>(thisEntity, thisPkColumn);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void DeleteMany(EntityInfo thisEntity, List<object> ids,string fkName)
|
||||||
|
{
|
||||||
|
if (_Options == null||_Options.OneToManyDeleteAll==false)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var oneToManys = thisEntity.Columns.Where(it => it.Navigat != null && it.Navigat.NavigatType == NavigateType.OneToMany).ToList();
|
||||||
|
foreach (var oneToMany in oneToManys)
|
||||||
|
{
|
||||||
|
var fkFieldName = oneToMany.Navigat.Name2?? thisEntity.Columns.FirstOrDefault(it=>it.IsPrimarykey).PropertyName;
|
||||||
|
var fkDbColumnName = thisEntity.Columns.FirstOrDefault(it => it.PropertyName == fkFieldName).DbColumnName;
|
||||||
|
var fks= this._Context.Queryable<object>()
|
||||||
|
.AS(thisEntity.DbTableName)
|
||||||
|
.In(fkName, ids.Distinct().ToList()).Select(fkDbColumnName).ToDataTable().Rows.Cast<System.Data.DataRow>().Select(x=>x[0]).ToArray();
|
||||||
|
|
||||||
|
var type = oneToMany.PropertyInfo.PropertyType.GenericTypeArguments[0];
|
||||||
|
var entity = this._Context.EntityMaintenance.GetEntityInfo(type);
|
||||||
|
var id = oneToMany.Navigat.Name;
|
||||||
|
var column = entity.Columns.FirstOrDefault(it => it.PropertyName == id).DbColumnName;
|
||||||
|
this._Context.Deleteable<object>()
|
||||||
|
.AS(entity.DbTableName)
|
||||||
|
.In(column, fks.Distinct().ToList()).ExecuteCommand();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private EntityColumnInfo GetParentPkColumn()
|
private EntityColumnInfo GetParentPkColumn()
|
||||||
{
|
{
|
||||||
EntityColumnInfo parentPkColumn = _ParentPkColumn;
|
EntityColumnInfo parentPkColumn = _ParentPkColumn;
|
||||||
|
@ -15,6 +15,7 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
public bool ManyToManyIsUpdateA { get; set; }
|
public bool ManyToManyIsUpdateA { get; set; }
|
||||||
public bool ManyToManyIsUpdateB { get; set; }
|
public bool ManyToManyIsUpdateB { get; set; }
|
||||||
|
public bool OneToManyDeleteAll { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class InsertNavOptions
|
public class InsertNavOptions
|
||||||
|
Loading…
Reference in New Issue
Block a user