mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-07-15 05:13:27 +08:00
-
This commit is contained in:
parent
28730025b1
commit
de9f297b17
@ -63,6 +63,7 @@ namespace OrmTest.Demo
|
|||||||
var sum = db.Queryable<Student>().Sum(it=>it.Id);
|
var sum = db.Queryable<Student>().Sum(it=>it.Id);
|
||||||
var isAny = db.Queryable<Student>().Where(it=>it.Id==-1).Any();
|
var isAny = db.Queryable<Student>().Where(it=>it.Id==-1).Any();
|
||||||
var isAny2 = db.Queryable<Student>().Any(it => it.Id == -1);
|
var isAny2 = db.Queryable<Student>().Any(it => it.Id == -1);
|
||||||
|
var getListByRename = db.Queryable<School>().AS("Student").ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Page()
|
public static void Page()
|
||||||
|
@ -51,8 +51,7 @@ namespace OrmTest.Demo
|
|||||||
.Where(it => it.Id == 11).ExecuteCommand();
|
.Where(it => it.Id == 11).ExecuteCommand();
|
||||||
|
|
||||||
//Rename
|
//Rename
|
||||||
db.MappingTables.Add("School", "Student");
|
db.Updateable<School>().AS("Student").UpdateColumns(it => new School() { Name = "jack" }).Where(it => it.Id == 1).ExecuteCommand();
|
||||||
db.Updateable<School>().UpdateColumns(it => new School() { Name = "jack" }).Where(it => it.Id == 1).ExecuteCommand();
|
|
||||||
//Update Student set Name='jack' Where Id=1
|
//Update Student set Name='jack' Where Id=1
|
||||||
}
|
}
|
||||||
public static SqlSugarClient GetInstance()
|
public static SqlSugarClient GetInstance()
|
||||||
|
@ -28,6 +28,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
public virtual List<DbColumnInfo> GetColumnInfosByTableName(string tableName)
|
public virtual List<DbColumnInfo> GetColumnInfosByTableName(string tableName)
|
||||||
{
|
{
|
||||||
|
if (string.IsNullOrEmpty(tableName)) return new List<DbColumnInfo>();
|
||||||
string key = "DbMaintenanceProvider.GetColumnInfosByTableName." + tableName.ToLower();
|
string key = "DbMaintenanceProvider.GetColumnInfosByTableName." + tableName.ToLower();
|
||||||
return GetListOrCache<DbColumnInfo>(key, this.GetColumnInfosByTableNameSql);
|
return GetListOrCache<DbColumnInfo>(key, this.GetColumnInfosByTableNameSql);
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,8 @@ namespace SqlSugar
|
|||||||
public IAdo Db { get { return Context.Ado; } }
|
public IAdo Db { get { return Context.Ado; } }
|
||||||
public ISqlBuilder SqlBuilder { get; set; }
|
public ISqlBuilder SqlBuilder { get; set; }
|
||||||
public DeleteBuilder DeleteBuilder { get; set; }
|
public DeleteBuilder DeleteBuilder { get; set; }
|
||||||
|
public MappingTableList OldMappingTableList { get; set; }
|
||||||
|
public bool IsAs { get; set; }
|
||||||
public EntityInfo EntityInfo
|
public EntityInfo EntityInfo
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@ -25,8 +27,17 @@ namespace SqlSugar
|
|||||||
DeleteBuilder.EntityInfo = this.Context.EntityProvider.GetEntityInfo<T>();
|
DeleteBuilder.EntityInfo = this.Context.EntityProvider.GetEntityInfo<T>();
|
||||||
string sql = DeleteBuilder.ToSqlString();
|
string sql = DeleteBuilder.ToSqlString();
|
||||||
var paramters = DeleteBuilder.Parameters==null?null:DeleteBuilder.Parameters.ToArray();
|
var paramters = DeleteBuilder.Parameters==null?null:DeleteBuilder.Parameters.ToArray();
|
||||||
|
RestoreMapping();
|
||||||
return Db.GetInt(sql, paramters);
|
return Db.GetInt(sql, paramters);
|
||||||
}
|
}
|
||||||
|
public IDeleteable<T> AS(string tableName)
|
||||||
|
{
|
||||||
|
var entityName = typeof(T).Name;
|
||||||
|
IsAs = true;
|
||||||
|
this.Context.MappingTables = this.Context.RewritableMethods.TranslateCopy(this.Context.MappingTables);
|
||||||
|
this.Context.MappingTables.Add(entityName, tableName);
|
||||||
|
return this; ;
|
||||||
|
}
|
||||||
|
|
||||||
public IDeleteable<T> Where(List<T> deleteObjs)
|
public IDeleteable<T> Where(List<T> deleteObjs)
|
||||||
{
|
{
|
||||||
@ -149,6 +160,7 @@ namespace SqlSugar
|
|||||||
DeleteBuilder.EntityInfo = this.Context.EntityProvider.GetEntityInfo<T>();
|
DeleteBuilder.EntityInfo = this.Context.EntityProvider.GetEntityInfo<T>();
|
||||||
string sql = DeleteBuilder.ToSqlString();
|
string sql = DeleteBuilder.ToSqlString();
|
||||||
var paramters = DeleteBuilder.Parameters == null ? null : DeleteBuilder.Parameters.ToList();
|
var paramters = DeleteBuilder.Parameters == null ? null : DeleteBuilder.Parameters.ToList();
|
||||||
|
RestoreMapping();
|
||||||
return new KeyValuePair<string, List<SugarParameter>>(sql, paramters);
|
return new KeyValuePair<string, List<SugarParameter>>(sql, paramters);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -175,5 +187,12 @@ namespace SqlSugar
|
|||||||
return this.EntityInfo.Columns.Where(it => it.IsIdentity).Select(it => it.DbColumnName).ToList();
|
return this.EntityInfo.Columns.Where(it => it.IsIdentity).Select(it => it.DbColumnName).ToList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
private void RestoreMapping()
|
||||||
|
{
|
||||||
|
if (IsAs)
|
||||||
|
{
|
||||||
|
this.Context.MappingTables = OldMappingTableList;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -24,29 +24,46 @@ namespace SqlSugar
|
|||||||
private bool IsOffIdentity { get; set; }
|
private bool IsOffIdentity { get; set; }
|
||||||
public T[] InsertObjs { get; set; }
|
public T[] InsertObjs { get; set; }
|
||||||
|
|
||||||
|
public MappingTableList OldMappingTableList { get; set; }
|
||||||
|
public bool IsAs { get; set; }
|
||||||
|
|
||||||
#region Core
|
#region Core
|
||||||
public int ExecuteCommand()
|
public int ExecuteCommand()
|
||||||
{
|
{
|
||||||
InsertBuilder.IsReturnIdentity = false;
|
InsertBuilder.IsReturnIdentity = false;
|
||||||
PreToSql();
|
PreToSql();
|
||||||
return Ado.ExecuteCommand(InsertBuilder.ToSqlString(), InsertBuilder.Parameters.ToArray());
|
string sql = InsertBuilder.ToSqlString();
|
||||||
|
RestoreMapping();
|
||||||
|
return Ado.ExecuteCommand(sql, InsertBuilder.Parameters.ToArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
public KeyValuePair<string, List<SugarParameter>> ToSql()
|
public KeyValuePair<string, List<SugarParameter>> ToSql()
|
||||||
{
|
{
|
||||||
InsertBuilder.IsReturnIdentity = true;
|
InsertBuilder.IsReturnIdentity = true;
|
||||||
PreToSql();
|
PreToSql();
|
||||||
string sql = InsertBuilder.ToSqlString();
|
string sql = InsertBuilder.ToSqlString();
|
||||||
|
RestoreMapping();
|
||||||
return new KeyValuePair<string, List<SugarParameter>>(sql, InsertBuilder.Parameters);
|
return new KeyValuePair<string, List<SugarParameter>>(sql, InsertBuilder.Parameters);
|
||||||
}
|
}
|
||||||
public int ExecuteReutrnIdentity()
|
public int ExecuteReutrnIdentity()
|
||||||
{
|
{
|
||||||
InsertBuilder.IsReturnIdentity = true;
|
InsertBuilder.IsReturnIdentity = true;
|
||||||
PreToSql();
|
PreToSql();
|
||||||
return Ado.GetInt(InsertBuilder.ToSqlString(), InsertBuilder.Parameters.ToArray());
|
string sql = InsertBuilder.ToSqlString();
|
||||||
|
RestoreMapping();
|
||||||
|
return Ado.GetInt(sql, InsertBuilder.Parameters.ToArray());
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Setting
|
#region Setting
|
||||||
|
public IInsertable<T> AS(string tableName)
|
||||||
|
{
|
||||||
|
var entityName = typeof(T).Name;
|
||||||
|
IsAs = true;
|
||||||
|
this.Context.MappingTables = this.Context.RewritableMethods.TranslateCopy(this.Context.MappingTables);
|
||||||
|
this.Context.MappingTables.Add(entityName, tableName);
|
||||||
|
return this; ;
|
||||||
|
}
|
||||||
public IInsertable<T> IgnoreColumns(Expression<Func<T, object>> columns)
|
public IInsertable<T> IgnoreColumns(Expression<Func<T, object>> columns)
|
||||||
{
|
{
|
||||||
var ignoreColumns = InsertBuilder.GetExpressionValue(columns, ResolveExpressType.Array).GetResultArray();
|
var ignoreColumns = InsertBuilder.GetExpressionValue(columns, ResolveExpressType.Array).GetResultArray();
|
||||||
@ -188,6 +205,13 @@ namespace SqlSugar
|
|||||||
return this.EntityInfo.Columns.Where(it => it.IsIdentity).Select(it => it.DbColumnName).ToList();
|
return this.EntityInfo.Columns.Where(it => it.IsIdentity).Select(it => it.DbColumnName).ToList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
private void RestoreMapping()
|
||||||
|
{
|
||||||
|
if (IsAs)
|
||||||
|
{
|
||||||
|
this.Context.MappingTables = OldMappingTableList;
|
||||||
|
}
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,6 +16,8 @@ namespace SqlSugar
|
|||||||
public IAdo Db { get { return Context.Ado; } }
|
public IAdo Db { get { return Context.Ado; } }
|
||||||
public IDbBind Bind { get { return this.Db.DbBind; } }
|
public IDbBind Bind { get { return this.Db.DbBind; } }
|
||||||
public ISqlBuilder SqlBuilder { get; set; }
|
public ISqlBuilder SqlBuilder { get; set; }
|
||||||
|
public MappingTableList OldMappingTableList { get; set; }
|
||||||
|
public bool IsAs { get; set; }
|
||||||
public QueryBuilder QueryBuilder
|
public QueryBuilder QueryBuilder
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@ -34,7 +36,22 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
QueryBuilder.Clear();
|
QueryBuilder.Clear();
|
||||||
}
|
}
|
||||||
|
public ISugarQueryable<T> AS<T2>(string tableName)
|
||||||
|
{
|
||||||
|
var entityName = typeof(T2).Name;
|
||||||
|
IsAs = true;
|
||||||
|
this.Context.MappingTables = this.Context.RewritableMethods.TranslateCopy(this.Context.MappingTables);
|
||||||
|
this.Context.MappingTables.Add(entityName, tableName);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
public ISugarQueryable<T> AS(string tableName)
|
||||||
|
{
|
||||||
|
var entityName = typeof(T).Name;
|
||||||
|
IsAs = true;
|
||||||
|
this.Context.MappingTables = this.Context.RewritableMethods.TranslateCopy(this.Context.MappingTables);
|
||||||
|
this.Context.MappingTables.Add(entityName, tableName);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
public ISugarQueryable<T> AddParameters(object whereObj)
|
public ISugarQueryable<T> AddParameters(object whereObj)
|
||||||
{
|
{
|
||||||
if (whereObj != null)
|
if (whereObj != null)
|
||||||
@ -395,7 +412,7 @@ namespace SqlSugar
|
|||||||
|
|
||||||
public bool Any()
|
public bool Any()
|
||||||
{
|
{
|
||||||
return this.Count()>0;
|
return this.Count() > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ISugarQueryable<TResult> Select<T2, TResult>(Expression<Func<T2, TResult>> expression)
|
public ISugarQueryable<TResult> Select<T2, TResult>(Expression<Func<T2, TResult>> expression)
|
||||||
@ -450,6 +467,7 @@ namespace SqlSugar
|
|||||||
QueryBuilder.IsCount = true;
|
QueryBuilder.IsCount = true;
|
||||||
var sql = QueryBuilder.ToSqlString();
|
var sql = QueryBuilder.ToSqlString();
|
||||||
var reval = Context.Ado.GetInt(sql, QueryBuilder.Parameters.ToArray());
|
var reval = Context.Ado.GetInt(sql, QueryBuilder.Parameters.ToArray());
|
||||||
|
RestoreMapping();
|
||||||
QueryBuilder.IsCount = false;
|
QueryBuilder.IsCount = false;
|
||||||
return reval;
|
return reval;
|
||||||
}
|
}
|
||||||
@ -530,6 +548,7 @@ namespace SqlSugar
|
|||||||
public KeyValuePair<string, List<SugarParameter>> ToSql()
|
public KeyValuePair<string, List<SugarParameter>> ToSql()
|
||||||
{
|
{
|
||||||
string sql = QueryBuilder.ToSqlString();
|
string sql = QueryBuilder.ToSqlString();
|
||||||
|
RestoreMapping();
|
||||||
return new KeyValuePair<string, List<SugarParameter>>(sql, QueryBuilder.Parameters);
|
return new KeyValuePair<string, List<SugarParameter>>(sql, QueryBuilder.Parameters);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -542,6 +561,7 @@ namespace SqlSugar
|
|||||||
public DataTable ToDataTable()
|
public DataTable ToDataTable()
|
||||||
{
|
{
|
||||||
var sqlObj = this.ToSql();
|
var sqlObj = this.ToSql();
|
||||||
|
RestoreMapping();
|
||||||
var result = this.Db.GetDataTable(sqlObj.Key, sqlObj.Value.ToArray());
|
var result = this.Db.GetDataTable(sqlObj.Key, sqlObj.Value.ToArray());
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -632,6 +652,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
if (this.Context.CurrentConnectionConfig.IsAutoCloseConnection) this.Context.Close();
|
if (this.Context.CurrentConnectionConfig.IsAutoCloseConnection) this.Context.Close();
|
||||||
}
|
}
|
||||||
|
RestoreMapping();
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
private List<string> GetPrimaryKeys()
|
private List<string> GetPrimaryKeys()
|
||||||
@ -656,6 +677,13 @@ namespace SqlSugar
|
|||||||
return this.EntityInfo.Columns.Where(it => it.IsIdentity).Select(it => it.DbColumnName).ToList();
|
return this.EntityInfo.Columns.Where(it => it.IsIdentity).Select(it => it.DbColumnName).ToList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
private void RestoreMapping()
|
||||||
|
{
|
||||||
|
if (IsAs)
|
||||||
|
{
|
||||||
|
this.Context.MappingTables = OldMappingTableList;
|
||||||
|
}
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,12 +22,23 @@ namespace SqlSugar
|
|||||||
public List<MappingColumn> MappingColumnList { get; set; }
|
public List<MappingColumn> MappingColumnList { get; set; }
|
||||||
private List<string> IgnoreColumnNameList { get; set; }
|
private List<string> IgnoreColumnNameList { get; set; }
|
||||||
private bool IsOffIdentity { get; set; }
|
private bool IsOffIdentity { get; set; }
|
||||||
|
public MappingTableList OldMappingTableList { get; set; }
|
||||||
|
public bool IsAs { get; set; }
|
||||||
public int ExecuteCommand()
|
public int ExecuteCommand()
|
||||||
{
|
{
|
||||||
PreToSql();
|
PreToSql();
|
||||||
return this.Ado.ExecuteCommand(UpdateBuilder.ToSqlString(), UpdateBuilder.Parameters == null ? null : UpdateBuilder.Parameters.ToArray());
|
string sql = UpdateBuilder.ToSqlString();
|
||||||
|
RestoreMapping();
|
||||||
|
return this.Ado.ExecuteCommand(sql, UpdateBuilder.Parameters == null ? null : UpdateBuilder.Parameters.ToArray());
|
||||||
|
}
|
||||||
|
public IUpdateable<T> AS(string tableName)
|
||||||
|
{
|
||||||
|
var entityName = typeof(T).Name;
|
||||||
|
IsAs = true;
|
||||||
|
this.Context.MappingTables = this.Context.RewritableMethods.TranslateCopy(this.Context.MappingTables);
|
||||||
|
this.Context.MappingTables.Add(entityName, tableName);
|
||||||
|
return this; ;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IUpdateable<T> IgnoreColumns(Func<string, bool> ignoreColumMethod)
|
public IUpdateable<T> IgnoreColumns(Func<string, bool> ignoreColumMethod)
|
||||||
{
|
{
|
||||||
this.UpdateBuilder.DbColumnInfoList = this.UpdateBuilder.DbColumnInfoList.Where(it => !ignoreColumMethod(it.PropertyName)).ToList();
|
this.UpdateBuilder.DbColumnInfoList = this.UpdateBuilder.DbColumnInfoList.Where(it => !ignoreColumMethod(it.PropertyName)).ToList();
|
||||||
@ -59,6 +70,7 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
PreToSql();
|
PreToSql();
|
||||||
string sql = UpdateBuilder.ToSqlString();
|
string sql = UpdateBuilder.ToSqlString();
|
||||||
|
RestoreMapping();
|
||||||
return new KeyValuePair<string, List<SugarParameter>>(sql, UpdateBuilder.Parameters);
|
return new KeyValuePair<string, List<SugarParameter>>(sql, UpdateBuilder.Parameters);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -234,5 +246,12 @@ namespace SqlSugar
|
|||||||
return this.EntityInfo.Columns.Where(it => it.IsIdentity).Select(it => it.DbColumnName).ToList();
|
return this.EntityInfo.Columns.Where(it => it.IsIdentity).Select(it => it.DbColumnName).ToList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
private void RestoreMapping()
|
||||||
|
{
|
||||||
|
if (IsAs)
|
||||||
|
{
|
||||||
|
this.Context.MappingTables = OldMappingTableList;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@ namespace SqlSugar
|
|||||||
public interface IDeleteable<T> where T : class, new()
|
public interface IDeleteable<T> where T : class, new()
|
||||||
{
|
{
|
||||||
int ExecuteCommand();
|
int ExecuteCommand();
|
||||||
|
IDeleteable<T> AS(string tableName);
|
||||||
IDeleteable<T> With(string lockString);
|
IDeleteable<T> With(string lockString);
|
||||||
IDeleteable<T> Where(T deleteObj);
|
IDeleteable<T> Where(T deleteObj);
|
||||||
IDeleteable<T> Where(Expression<Func<T, bool>> expression);
|
IDeleteable<T> Where(Expression<Func<T, bool>> expression);
|
||||||
|
@ -12,6 +12,8 @@ namespace SqlSugar
|
|||||||
SqlSugarClient Context { get; set; }
|
SqlSugarClient Context { get; set; }
|
||||||
ISqlBuilder SqlBuilder { get; set; }
|
ISqlBuilder SqlBuilder { get; set; }
|
||||||
|
|
||||||
|
ISugarQueryable<T> AS<T2>(string tableName);
|
||||||
|
ISugarQueryable<T> AS(string tableName);
|
||||||
ISugarQueryable<T> With(string withString);
|
ISugarQueryable<T> With(string withString);
|
||||||
ISugarQueryable<T> AddParameters(object pars);
|
ISugarQueryable<T> AddParameters(object pars);
|
||||||
ISugarQueryable<T> AddParameters(SugarParameter[] pars);
|
ISugarQueryable<T> AddParameters(SugarParameter[] pars);
|
||||||
|
@ -10,6 +10,7 @@ namespace SqlSugar
|
|||||||
public interface IUpdateable<T>
|
public interface IUpdateable<T>
|
||||||
{
|
{
|
||||||
int ExecuteCommand();
|
int ExecuteCommand();
|
||||||
|
IUpdateable<T> AS(string tableName);
|
||||||
IUpdateable<T> With(string lockString);
|
IUpdateable<T> With(string lockString);
|
||||||
IUpdateable<T> Where(bool isUpdateNull,bool IsOffIdentity = false);
|
IUpdateable<T> Where(bool isUpdateNull,bool IsOffIdentity = false);
|
||||||
IUpdateable<T> Where(Expression<Func<T, bool>> expression);
|
IUpdateable<T> Where(Expression<Func<T, bool>> expression);
|
||||||
|
@ -11,6 +11,7 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
int ExecuteCommand();
|
int ExecuteCommand();
|
||||||
int ExecuteReutrnIdentity();
|
int ExecuteReutrnIdentity();
|
||||||
|
IInsertable<T> AS(string tableName);
|
||||||
IInsertable<T> With(string lockString);
|
IInsertable<T> With(string lockString);
|
||||||
IInsertable<T> InsertColumns(Expression<Func<T, object>> columns);
|
IInsertable<T> InsertColumns(Expression<Func<T, object>> columns);
|
||||||
IInsertable<T> IgnoreColumns(Expression<Func<T, object>> columns);
|
IInsertable<T> IgnoreColumns(Expression<Func<T, object>> columns);
|
||||||
|
Loading…
Reference in New Issue
Block a user