add db.Storageable(list).as(tablename)

This commit is contained in:
sunkaixuna
2021-05-16 21:55:01 +08:00
parent 7244a8f5d6
commit adef3ed109
6 changed files with 20 additions and 8 deletions

View File

@@ -62,6 +62,7 @@ namespace SqlSugar
}
public IDeleteable<T> AS(string tableName)
{
if (tableName == null) return this;
var entityName = typeof(T).Name;
IsAs = true;
OldMappingTableList = this.Context.MappingTables;

View File

@@ -168,6 +168,7 @@ namespace SqlSugar
#region Setting
public IInsertable<T> AS(string tableName)
{
if (tableName == null) return this;
var entityName = typeof(T).Name;
IsAs = true;
OldMappingTableList = this.Context.MappingTables;

View File

@@ -85,6 +85,7 @@ namespace SqlSugar
}
public ISugarQueryable<T> AS(string tableName)
{
if (tableName == null) return this;
var entityName = typeof(T).Name;
return _As(tableName, entityName);
}

View File

@@ -16,6 +16,7 @@ namespace SqlSugar
List<T> dbDataList = new List<T>();
List<KeyValuePair<StorageType, Func<StorageableInfo<T>, bool>, string>> whereFuncs = new List<KeyValuePair<StorageType, Func<StorageableInfo<T>, bool>, string>>();
Expression<Func<T, object>> whereExpression;
private string asname { get; set; }
public Storageable(List<T> datas, SqlSugarProvider context)
{
this.Context = context;
@@ -71,9 +72,9 @@ namespace SqlSugar
{
if (this.allDatas.Count == 0)
return new StorageableResult<T>() {
AsDeleteable = this.Context.Deleteable<T>().Where(it => false),
AsInsertable = this.Context.Insertable(new List<T>()),
AsUpdateable = this.Context.Updateable(new List<T>()),
AsDeleteable = this.Context.Deleteable<T>().AS(asname).Where(it => false),
AsInsertable = this.Context.Insertable(new List<T>()).AS(asname),
AsUpdateable = this.Context.Updateable(new List<T>()).AS(asname),
InsertList = new List<StorageableMessage<T>>(),
UpdateList = new List<StorageableMessage<T>>(),
DeleteList = new List<StorageableMessage<T>>(),
@@ -90,7 +91,7 @@ namespace SqlSugar
if (whereExpression == null && pkInfos.Any())
{
this.Context.Utilities.PageEach(allDatas, 300, item => {
var addItems=this.Context.Queryable<T>().WhereClassByPrimaryKey(item.Select(it => it.Item).ToList()).ToList();
var addItems=this.Context.Queryable<T>().AS(asname).WhereClassByPrimaryKey(item.Select(it => it.Item).ToList()).ToList();
dbDataList.AddRange(addItems);
});
}
@@ -120,9 +121,9 @@ namespace SqlSugar
var other = messageList.Where(it => it.StorageType == StorageType.Other).ToList();
StorageableResult<T> result = new StorageableResult<T>()
{
AsDeleteable = this.Context.Deleteable<T>(),
AsUpdateable = this.Context.Updateable(update.Select(it => it.Item).ToList()),
AsInsertable = this.Context.Insertable(inset.Select(it => it.Item).ToList()),
AsDeleteable = this.Context.Deleteable<T>().AS(asname),
AsUpdateable = this.Context.Updateable(update.Select(it => it.Item).ToList()).AS(asname),
AsInsertable = this.Context.Insertable(inset.Select(it => it.Item).ToList()).AS(asname),
OtherList = other,
InsertList = inset,
DeleteList = delete,
@@ -175,7 +176,7 @@ namespace SqlSugar
{
List<IConditionalModel> conditList = new List<IConditionalModel>();
SetConditList(itemList, whereColumns, conditList);
var addItem = this.Context.Queryable<T>().Where(conditList).ToList();
var addItem = this.Context.Queryable<T>().AS(asname).Where(conditList).ToList();
this.dbDataList.AddRange(addItem);
});
}
@@ -238,5 +239,11 @@ namespace SqlSugar
var result = resolveExpress.Result;
return result;
}
public IStorageable<T> As(string tableName)
{
this.asname = tableName;
return this;
}
}
}

View File

@@ -114,6 +114,7 @@ namespace SqlSugar
}
public IUpdateable<T> AS(string tableName)
{
if (tableName == null) return this;
var entityName = typeof(T).Name;
IsAs = true;
OldMappingTableList = this.Context.MappingTables;

View File

@@ -17,6 +17,7 @@ namespace SqlSugar
IStorageable<T> SplitDelete(Func<StorageableInfo<T>, bool> conditions, string message = null);
IStorageable<T> SplitOther(Func<StorageableInfo<T>, bool> conditions, string message = null);
StorageableResult<T> ToStorage();
IStorageable<T> As(string tableName);
}
public class StorageableInfo<T> where T : class, new()