mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-12-01 19:03:58 +08:00
Merge branch 'dev' of https://github.com/sunkaixuan/SqlSugar
This commit is contained in:
@@ -61,9 +61,10 @@
|
|||||||
<Compile Include="PerformanceTesting\PerformanceBase.cs" />
|
<Compile Include="PerformanceTesting\PerformanceBase.cs" />
|
||||||
<Compile Include="PerformanceTesting\SqlSugarPerformance.cs" />
|
<Compile Include="PerformanceTesting\SqlSugarPerformance.cs" />
|
||||||
<Compile Include="UnitTest\Delete.cs" />
|
<Compile Include="UnitTest\Delete.cs" />
|
||||||
<Compile Include="UnitTest\ExpressionTest\ExpTestBase.cs" />
|
<Compile Include="UnitTest\UnitTestBase.cs" />
|
||||||
<Compile Include="UnitTest\ExpressionTest\Field.cs" />
|
<Compile Include="UnitTest\ExpressionTest\Field.cs" />
|
||||||
<Compile Include="UnitTest\Insert.cs" />
|
<Compile Include="UnitTest\Insert.cs" />
|
||||||
|
<Compile Include="UnitTest\Mapping .cs" />
|
||||||
<Compile Include="UnitTest\Query\JoinQuery.cs" />
|
<Compile Include="UnitTest\Query\JoinQuery.cs" />
|
||||||
<Compile Include="UnitTest\ExpressionTest\Method.cs" />
|
<Compile Include="UnitTest\ExpressionTest\Method.cs" />
|
||||||
<Compile Include="UnitTest\ExpressionTest\Select.cs" />
|
<Compile Include="UnitTest\ExpressionTest\Select.cs" />
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace OrmTest
|
namespace OrmTest
|
||||||
{
|
{
|
||||||
public class Delete : ExpTestBase
|
public class Delete : UnitTestBase
|
||||||
{
|
{
|
||||||
private Delete() { }
|
private Delete() { }
|
||||||
public Delete(int eachCount)
|
public Delete(int eachCount)
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace OrmTest.UnitTest
|
namespace OrmTest.UnitTest
|
||||||
{
|
{
|
||||||
public class Field : ExpTestBase
|
public class Field : UnitTestBase
|
||||||
{
|
{
|
||||||
private Field() { }
|
private Field() { }
|
||||||
public Field(int eachCount)
|
public Field(int eachCount)
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace OrmTest.UnitTest
|
namespace OrmTest.UnitTest
|
||||||
{
|
{
|
||||||
public class Method : ExpTestBase
|
public class Method : UnitTestBase
|
||||||
{
|
{
|
||||||
private Method() { }
|
private Method() { }
|
||||||
public Method(int eachCount)
|
public Method(int eachCount)
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace OrmTest.UnitTest
|
namespace OrmTest.UnitTest
|
||||||
{
|
{
|
||||||
public class Select : ExpTestBase
|
public class Select : UnitTestBase
|
||||||
{
|
{
|
||||||
private Select() { }
|
private Select() { }
|
||||||
public Select(int eachCount)
|
public Select(int eachCount)
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace OrmTest.UnitTest
|
namespace OrmTest.UnitTest
|
||||||
{
|
{
|
||||||
public class Where : ExpTestBase
|
public class Where : UnitTestBase
|
||||||
{
|
{
|
||||||
private Where() { }
|
private Where() { }
|
||||||
public Where(int eachCount)
|
public Where(int eachCount)
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace OrmTest.UnitTest
|
namespace OrmTest.UnitTest
|
||||||
{
|
{
|
||||||
public class Insert : ExpTestBase
|
public class Insert : UnitTestBase
|
||||||
{
|
{
|
||||||
private Insert() { }
|
private Insert() { }
|
||||||
public Insert(int eachCount)
|
public Insert(int eachCount)
|
||||||
@@ -19,34 +19,40 @@ namespace OrmTest.UnitTest
|
|||||||
public void Init() {
|
public void Init() {
|
||||||
var db = GetInstance();
|
var db = GetInstance();
|
||||||
var insertObj = new Student() { Name="jack",CreateTime=DateTime.Now };
|
var insertObj = new Student() { Name="jack",CreateTime=DateTime.Now };
|
||||||
var insertObjs = new List<Student>() { insertObj }.ToArray();
|
|
||||||
db.IgnoreColumns.Add("TestId", "Student");
|
db.IgnoreColumns.Add("TestId", "Student");
|
||||||
//db.MappingColumns.Add("id","dbid", "Student");
|
//db.MappingColumns.Add("id","dbid", "Student");
|
||||||
|
|
||||||
var s1= db.Insertable<Student>(insertObj).ToSql();
|
var s1= db.Insertable(insertObj).ToSql();
|
||||||
|
|
||||||
//Insert reutrn Command Count
|
//Insert reutrn Command Count
|
||||||
var s2=db.Insertable<Student>(insertObj).ExecuteCommand();
|
var s2=db.Insertable(insertObj).ExecuteCommand();
|
||||||
|
|
||||||
db.IgnoreColumns = null;
|
db.IgnoreColumns = null;
|
||||||
//Only insert Name
|
//Only insert Name
|
||||||
var s3 = db.Insertable<Student>(insertObj).InsertColumns(it => new {it.Name}).ToSql();
|
var s3 = db.Insertable(insertObj).InsertColumns(it => new {it.Name}).ToSql();
|
||||||
|
|
||||||
//Ignore Name and TestId
|
//Ignore Name and TestId
|
||||||
var s4=db.Insertable<Student>(insertObj).IgnoreColumns(it => new{ it.Name,it.TestId }).ToSql();
|
var s4=db.Insertable(insertObj).IgnoreColumns(it => new{ it.Name,it.TestId }).ToSql();
|
||||||
|
|
||||||
//Ignore Name and TestId
|
//Ignore Name and TestId
|
||||||
var s5 = db.Insertable<Student>(insertObj).IgnoreColumns(it => it == "Name" || it == "TestId").With(SqlWith.UpdLock).ToSql();
|
var s5 = db.Insertable(insertObj).IgnoreColumns(it => it == "Name" || it == "TestId").With(SqlWith.UpdLock).ToSql();
|
||||||
|
|
||||||
//Use Lock
|
//Use Lock
|
||||||
var s6 =db.Insertable<Student>(insertObj).With(SqlWith.UpdLock).ToSql();
|
var s6 =db.Insertable(insertObj).With(SqlWith.UpdLock).ToSql();
|
||||||
|
|
||||||
//ToSql
|
//ToSql
|
||||||
var s7= db.Insertable<Student>(insertObj).With(SqlWith.UpdLock)
|
var s7= db.Insertable(insertObj).With(SqlWith.UpdLock)
|
||||||
.InsertColumns(it => new { it.Name }).ToSql();
|
.InsertColumns(it => new { it.Name }).ToSql();
|
||||||
|
|
||||||
|
db.IgnoreColumns = new IgnoreComumnList();
|
||||||
|
db.IgnoreColumns.Add("TestId", "Student");
|
||||||
//Insert List<T>
|
//Insert List<T>
|
||||||
var s8= db.Insertable<Student>(insertObjs).With(SqlWith.UpdLock).ToSql();
|
var insertObjs = new List<Student>();
|
||||||
|
for (int i = 0; i < 1000; i++)
|
||||||
|
{
|
||||||
|
insertObjs.Add(new Student() { Name="name"+i });
|
||||||
|
}
|
||||||
|
var s8= db.Insertable(insertObjs.ToArray()).InsertColumns(it=>new{ it.Name}).With(SqlWith.UpdLock).ToSql();
|
||||||
}
|
}
|
||||||
|
|
||||||
public SqlSugarClient GetInstance()
|
public SqlSugarClient GetInstance()
|
||||||
|
|||||||
31
OrmTest/UnitTest/Mapping .cs
Normal file
31
OrmTest/UnitTest/Mapping .cs
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
using OrmTest.Models;
|
||||||
|
using SqlSugar;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace OrmTest.UnitTest
|
||||||
|
{
|
||||||
|
public class Mapping:UnitTestBase
|
||||||
|
{
|
||||||
|
private Mapping() { }
|
||||||
|
public Mapping(int eachCount)
|
||||||
|
{
|
||||||
|
this.Count = eachCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Init() {
|
||||||
|
|
||||||
|
var db = GetInstance();
|
||||||
|
var s1= db.Queryable<Student>().ToSql();
|
||||||
|
}
|
||||||
|
|
||||||
|
public SqlSugarClient GetInstance()
|
||||||
|
{
|
||||||
|
SqlSugarClient db = new SqlSugarClient(new AttrbuitesCofnig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true, EntityNamespace= "OrmTest.Models" });
|
||||||
|
return db;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -8,7 +8,7 @@ using System.Linq.Expressions;
|
|||||||
using OrmTest.Models;
|
using OrmTest.Models;
|
||||||
namespace OrmTest.UnitTest
|
namespace OrmTest.UnitTest
|
||||||
{
|
{
|
||||||
public class JoinQuery : ExpTestBase
|
public class JoinQuery : UnitTestBase
|
||||||
{
|
{
|
||||||
private JoinQuery() { }
|
private JoinQuery() { }
|
||||||
public JoinQuery(int eachCount)
|
public JoinQuery(int eachCount)
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ using System.Linq.Expressions;
|
|||||||
using OrmTest.Models;
|
using OrmTest.Models;
|
||||||
namespace OrmTest.UnitTest
|
namespace OrmTest.UnitTest
|
||||||
{
|
{
|
||||||
public class SelectQuery : ExpTestBase
|
public class SelectQuery : UnitTestBase
|
||||||
{
|
{
|
||||||
private SelectQuery() { }
|
private SelectQuery() { }
|
||||||
public SelectQuery(int eachCount)
|
public SelectQuery(int eachCount)
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ using System.Linq.Expressions;
|
|||||||
using OrmTest.Models;
|
using OrmTest.Models;
|
||||||
namespace OrmTest.UnitTest
|
namespace OrmTest.UnitTest
|
||||||
{
|
{
|
||||||
public class SingleQuery : ExpTestBase
|
public class SingleQuery : UnitTestBase
|
||||||
{
|
{
|
||||||
private SingleQuery() { }
|
private SingleQuery() { }
|
||||||
public SingleQuery(int eachCount)
|
public SingleQuery(int eachCount)
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace OrmTest.UnitTest
|
namespace OrmTest.UnitTest
|
||||||
{
|
{
|
||||||
public class Attribute : ExpTestBase
|
public class Attribute : UnitTestBase
|
||||||
{
|
{
|
||||||
public Attribute(int eachCount)
|
public Attribute(int eachCount)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace OrmTest.UnitTest
|
namespace OrmTest.UnitTest
|
||||||
{
|
{
|
||||||
public class AutoClose : ExpTestBase
|
public class AutoClose : UnitTestBase
|
||||||
{
|
{
|
||||||
public AutoClose(int eachCount)
|
public AutoClose(int eachCount)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace OrmTest.UnitTest
|
namespace OrmTest.UnitTest
|
||||||
{
|
{
|
||||||
public class MapColumn : ExpTestBase
|
public class MapColumn : UnitTestBase
|
||||||
{
|
{
|
||||||
public SqlSugarClient GetInstance()
|
public SqlSugarClient GetInstance()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace OrmTest.UnitTest
|
namespace OrmTest.UnitTest
|
||||||
{
|
{
|
||||||
public class MapTable : ExpTestBase
|
public class MapTable : UnitTestBase
|
||||||
{
|
{
|
||||||
public void Init()
|
public void Init()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ using SqlSugar;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
namespace OrmTest.UnitTest
|
namespace OrmTest.UnitTest
|
||||||
{
|
{
|
||||||
public class ExpTestBase
|
public class UnitTestBase
|
||||||
{
|
{
|
||||||
public int Count { get; set; }
|
public int Count { get; set; }
|
||||||
private DateTime BeginTime { get; set; }
|
private DateTime BeginTime { get; set; }
|
||||||
@@ -86,33 +86,36 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
this.GetTableInfoList();
|
this.GetTableInfoList();
|
||||||
}
|
}
|
||||||
var entity = this.Context.MappingTables.SingleOrDefault(it => it.DbTableName.Equals(tableName, StringComparison.CurrentCultureIgnoreCase));
|
var entities = this.Context.MappingTables.Where(it => it.DbTableName.Equals(tableName, StringComparison.CurrentCultureIgnoreCase)).ToList();
|
||||||
var entityName = entity == null ? tableName : entity.EntityName;
|
foreach (var entity in entities)
|
||||||
var assembly = Assembly.Load(this.Context.EntityNamespace.Split('.').First());
|
|
||||||
foreach (var item in assembly.GetType(this.Context.EntityNamespace + "." + entityName).GetProperties())
|
|
||||||
{
|
{
|
||||||
var isVirtual = item.GetGetMethod().IsVirtual;
|
var entityName = entity == null ? tableName : entity.EntityName;
|
||||||
if (isVirtual) continue;
|
var assembly = Assembly.Load(this.Context.EntityNamespace.Split('.').First());
|
||||||
var sugarColumn = item.GetCustomAttributes(typeof(SugarColumn), true)
|
foreach (var item in assembly.GetType(this.Context.EntityNamespace + "." + entityName).GetProperties())
|
||||||
.Where(it => it is SugarColumn)
|
|
||||||
.Select(it => (SugarColumn)it)
|
|
||||||
.Where(it => it.ColumnName.IsValuable())
|
|
||||||
.FirstOrDefault();
|
|
||||||
if (sugarColumn.IsNullOrEmpty())
|
|
||||||
{
|
{
|
||||||
reval.Add(new DbColumnInfo() { ColumnName = item.Name });
|
var isVirtual = item.GetGetMethod().IsVirtual;
|
||||||
}
|
if (isVirtual) continue;
|
||||||
else
|
var sugarColumn = item.GetCustomAttributes(typeof(SugarColumn), true)
|
||||||
{
|
.Where(it => it is SugarColumn)
|
||||||
if (sugarColumn.IsIgnore == false)
|
.Select(it => (SugarColumn)it)
|
||||||
|
.Where(it => it.ColumnName.IsValuable())
|
||||||
|
.FirstOrDefault();
|
||||||
|
if (sugarColumn.IsNullOrEmpty())
|
||||||
{
|
{
|
||||||
var columnInfo = new DbColumnInfo();
|
reval.Add(new DbColumnInfo() { ColumnName = item.Name });
|
||||||
columnInfo.ColumnName = sugarColumn.ColumnName.IsNullOrEmpty() ? item.Name : sugarColumn.ColumnName;
|
}
|
||||||
columnInfo.IsPrimarykey = sugarColumn.IsPrimaryKey;
|
else
|
||||||
columnInfo.IsIdentity = sugarColumn.IsIdentity;
|
{
|
||||||
columnInfo.ColumnDescription = sugarColumn.ColumnDescription;
|
if (sugarColumn.IsIgnore == false)
|
||||||
columnInfo.TableName = entity.IsNullOrEmpty() ? tableName : entity.DbTableName;
|
{
|
||||||
reval.Add(columnInfo);
|
var columnInfo = new DbColumnInfo();
|
||||||
|
columnInfo.ColumnName = sugarColumn.ColumnName.IsNullOrEmpty() ? item.Name : sugarColumn.ColumnName;
|
||||||
|
columnInfo.IsPrimarykey = sugarColumn.IsPrimaryKey;
|
||||||
|
columnInfo.IsIdentity = sugarColumn.IsIdentity;
|
||||||
|
columnInfo.ColumnDescription = sugarColumn.ColumnDescription;
|
||||||
|
columnInfo.TableName = entity.IsNullOrEmpty() ? tableName : entity.DbTableName;
|
||||||
|
reval.Add(columnInfo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,6 +46,26 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public virtual string SqlTemplateBatch {
|
||||||
|
get {
|
||||||
|
return "INSERT {0} ({1})";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual string SqlTemplateBatchSelect {
|
||||||
|
get {
|
||||||
|
return "{0} AS {1}";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual string SqlTemplateBatchUnion
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return "\t\r\nUNION ALL ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public virtual void Clear()
|
public virtual void Clear()
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -78,9 +98,60 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
public virtual string ToSqlString()
|
public virtual string ToSqlString()
|
||||||
{
|
{
|
||||||
string columnsString = string.Join(",", this.DbColumnInfoList.Select(it => Builder.GetTranslationColumnName(it.ColumnName)));
|
var groupList = DbColumnInfoList.GroupBy(it => it.TableId).ToList();
|
||||||
string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it => Builder.SqlParameterKeyWord + it.ColumnName));
|
var isSingle = groupList.Count() == 1;
|
||||||
return string.Format(SqlTemplate, GetTableNameString, columnsString, columnParametersString);
|
string columnsString = string.Join(",", groupList.First().Select(it => Builder.GetTranslationColumnName(it.ColumnName)));
|
||||||
|
if (isSingle)
|
||||||
|
{
|
||||||
|
string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it => Builder.SqlParameterKeyWord + it.ColumnName));
|
||||||
|
return string.Format(SqlTemplate, GetTableNameString, columnsString, columnParametersString);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
StringBuilder batchInsetrSql = new StringBuilder();
|
||||||
|
int pageSize = 200;
|
||||||
|
int pageIndex = 1;
|
||||||
|
int totalRecord = groupList.Count;
|
||||||
|
int pageCount = (totalRecord + pageSize - 1) / pageSize;
|
||||||
|
while (pageCount >= pageIndex) {
|
||||||
|
batchInsetrSql.AppendFormat(SqlTemplateBatch, GetTableNameString, columnsString);
|
||||||
|
int i = 0;
|
||||||
|
foreach (var columns in groupList.Skip((pageIndex-1)*pageSize).Take(pageSize).ToList())
|
||||||
|
{
|
||||||
|
var isFirst = i == 0;
|
||||||
|
if (!isFirst)
|
||||||
|
{
|
||||||
|
batchInsetrSql.Append(SqlTemplateBatchUnion);
|
||||||
|
}
|
||||||
|
batchInsetrSql.Append("\r\n SELECT " + string.Join(",", columns.Select(it => string.Format(SqlTemplateBatchSelect, FormatValue(it.Value), it.ColumnName))));
|
||||||
|
++i;
|
||||||
|
}
|
||||||
|
pageIndex++;
|
||||||
|
batchInsetrSql.Append("\r\nGO\r\n");
|
||||||
|
}
|
||||||
|
return batchInsetrSql.ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public object FormatValue(object value)
|
||||||
|
{
|
||||||
|
if (value == null)
|
||||||
|
{
|
||||||
|
return "NULL";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var type = value.GetType();
|
||||||
|
if (type == PubConst.DateType)
|
||||||
|
{
|
||||||
|
return "'" + value.ObjToDate().ToString("yyyy-MM-dd hh:mm:ss.ms") + "'";
|
||||||
|
}
|
||||||
|
else if (type == PubConst.StringType|| type == PubConst.ObjType)
|
||||||
|
{
|
||||||
|
return "N'" + value.ToString().ToSqlFilter() + "'";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return "N'" + value.ToString() + "'";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -105,7 +105,14 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
public IDeleteable<T> In<PkType>(List<PkType> primaryKeyValues) {
|
||||||
|
if (primaryKeyValues == null || primaryKeyValues.Count() == 0)
|
||||||
|
{
|
||||||
|
Where("1=2 ");
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
return In<PkType>(primaryKeyValues.ToArray());
|
||||||
|
}
|
||||||
public IDeleteable<T> In<PkType>(PkType[] primaryKeyValues)
|
public IDeleteable<T> In<PkType>(PkType[] primaryKeyValues)
|
||||||
{
|
{
|
||||||
if (primaryKeyValues == null || primaryKeyValues.Count() == 0)
|
if (primaryKeyValues == null || primaryKeyValues.Count() == 0)
|
||||||
|
|||||||
@@ -153,6 +153,7 @@ namespace SqlSugar
|
|||||||
insertItem.Add(columnInfo);
|
insertItem.Add(columnInfo);
|
||||||
}
|
}
|
||||||
this.InsertBuilder.DbColumnInfoList.AddRange(insertItem);
|
this.InsertBuilder.DbColumnInfoList.AddRange(insertItem);
|
||||||
|
++i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private string GetDbColumnName(string entityName)
|
private string GetDbColumnName(string entityName)
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ namespace SqlSugar
|
|||||||
IDeleteable<T> Where(List<T> deleteObjs);
|
IDeleteable<T> Where(List<T> deleteObjs);
|
||||||
IDeleteable<T> In<PkType>(PkType primaryKeyValue);
|
IDeleteable<T> In<PkType>(PkType primaryKeyValue);
|
||||||
IDeleteable<T> In<PkType>(PkType[] primaryKeyValues);
|
IDeleteable<T> In<PkType>(PkType[] primaryKeyValues);
|
||||||
|
IDeleteable<T> In<PkType>(List<PkType> primaryKeyValues);
|
||||||
IDeleteable<T> Where(string whereString,object whereObj=null);
|
IDeleteable<T> Where(string whereString,object whereObj=null);
|
||||||
KeyValuePair<string, List<SugarParameter>> ToSql();
|
KeyValuePair<string, List<SugarParameter>> ToSql();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -253,6 +253,11 @@ namespace SqlSugar
|
|||||||
reval.Init();
|
reval.Init();
|
||||||
return reval;
|
return reval;
|
||||||
}
|
}
|
||||||
|
public virtual IInsertable<T> Insertable<T>(List<T> insertObjs) where T : class, new()
|
||||||
|
{
|
||||||
|
Check.ArgumentNullException(insertObjs, "Insertable.insertObjs can't be null");
|
||||||
|
return this.Insertable(insertObjs.ToArray());
|
||||||
|
}
|
||||||
public virtual IInsertable<T> Insertable<T>(T insertObj) where T : class, new()
|
public virtual IInsertable<T> Insertable<T>(T insertObj) where T : class, new()
|
||||||
{
|
{
|
||||||
return this.Insertable(new T[] { insertObj });
|
return this.Insertable(new T[] { insertObj });
|
||||||
|
|||||||
Reference in New Issue
Block a user