mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-10-15 18:55:07 +08:00
-
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
using System;
|
||||
using OrmTest.Models;
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
@@ -8,5 +10,36 @@ namespace OrmTest.Demo
|
||||
{
|
||||
public class Delete
|
||||
{
|
||||
public static void Init()
|
||||
{
|
||||
var db = GetInstance();
|
||||
//by entity
|
||||
var t1 = db.Deleteable<Student>().Where(new Student() { Id = 1 }).ExecuteCommand();
|
||||
|
||||
//use lock
|
||||
var t2 = db.Deleteable<Student>().With(SqlWith.RowLock).ExecuteCommand();
|
||||
|
||||
|
||||
//by primary key
|
||||
var t3 = db.Deleteable<Student>().In(1).ExecuteCommand();
|
||||
|
||||
//by primary key array
|
||||
var t4 = db.Deleteable<Student>().In(new int[] { 1, 2 }).ExecuteCommand();
|
||||
|
||||
//by expression
|
||||
var t5 = db.Deleteable<Student>().Where(it => it.Id == 1).ExecuteCommand();
|
||||
}
|
||||
|
||||
public static SqlSugarClient GetInstance()
|
||||
{
|
||||
SqlSugarClient db = new SqlSugarClient(new SystemTablesConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true });
|
||||
db.Ado.IsEnableLogEvent = true;
|
||||
db.Ado.LogEventStarting = (sql, pars) =>
|
||||
{
|
||||
Console.WriteLine(sql + "\r\n" + db.RewritableMethods.SerializeObject(pars));
|
||||
Console.WriteLine();
|
||||
};
|
||||
return db;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -36,6 +36,7 @@ namespace OrmTest
|
||||
/***Demo***/
|
||||
OrmTest.Demo.Query.Init();
|
||||
OrmTest.Demo.Insert.Init();
|
||||
OrmTest.Demo.Delete.Init();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -18,11 +18,11 @@ namespace SqlSugar
|
||||
public ISqlBuilder Builder { get; set; }
|
||||
public StringBuilder sql { get; set; }
|
||||
public List<SugarParameter> Parameters { get; set; }
|
||||
public string TableName { get; set; }
|
||||
public string TableWithString { get; set; }
|
||||
public List<DbColumnInfo> DbColumnInfoList { get; set; }
|
||||
public bool IsInsertNull { get; set; }
|
||||
public bool IsReturnIdentity { get; set; }
|
||||
public EntityInfo EntityInfo { get; set; }
|
||||
|
||||
public virtual string SqlTemplate
|
||||
{
|
||||
@@ -74,7 +74,7 @@ namespace SqlSugar
|
||||
{
|
||||
get
|
||||
{
|
||||
var result = Builder.GetTranslationTableName(TableName);
|
||||
var result = Builder.GetTranslationTableName(EntityInfo.EntityName);
|
||||
result += PubConst.Space;
|
||||
if (this.TableWithString.IsValuable())
|
||||
{
|
||||
@@ -83,6 +83,8 @@ namespace SqlSugar
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public virtual ExpressionResult GetExpressionValue(Expression expression, ResolveExpressType resolveType)
|
||||
{
|
||||
ILambdaExpressions resolveExpress = this.LambdaExpressions;
|
||||
|
@@ -16,8 +16,9 @@ namespace SqlSugar
|
||||
public CommandType CommandType { get; set; }
|
||||
public virtual string SqlParameterKeyWord { get { return "@"; } }
|
||||
public abstract string GetTranslationTableName(string name);
|
||||
public abstract string GetTranslationColumnName(string name);
|
||||
|
||||
public abstract string GetTranslationColumnName(string entityName, string propertyName);
|
||||
public abstract string GetTranslationColumnName(string propertyName);
|
||||
|
||||
public string AppendWhereOrAnd(bool isWhere, string sqlString)
|
||||
{
|
||||
return isWhere ? (" WHERE " + sqlString ):( " AND " + sqlString);
|
||||
@@ -27,6 +28,7 @@ namespace SqlSugar
|
||||
return " HAVING " + sqlString;
|
||||
}
|
||||
|
||||
|
||||
public DeleteBuilder DeleteBuilder
|
||||
{
|
||||
get; set;
|
||||
|
@@ -124,15 +124,6 @@ namespace SqlSugar
|
||||
}
|
||||
internal void Init()
|
||||
{
|
||||
this.InsertBuilder.TableName = EntityInfo.EntityName;
|
||||
if (IsMappingTable)
|
||||
{
|
||||
var mappingInfo = this.Context.MappingTables.SingleOrDefault(it => it.EntityName == EntityInfo.EntityName);
|
||||
if (mappingInfo != null)
|
||||
{
|
||||
this.InsertBuilder.TableName = mappingInfo.DbTableName;
|
||||
}
|
||||
}
|
||||
Check.Exception(InsertObjs == null || InsertObjs.Count() == 0, "InsertObjs is null");
|
||||
int i = 0;
|
||||
foreach (var item in InsertObjs)
|
||||
|
@@ -19,7 +19,9 @@ namespace SqlSugar
|
||||
UpdateBuilder UpdateBuilder { get; set; }
|
||||
|
||||
string SqlParameterKeyWord { get; }
|
||||
|
||||
string GetTranslationTableName(string name);
|
||||
string GetTranslationColumnName(string name);
|
||||
string GetTranslationColumnName(string entityName, string propertyName);
|
||||
string GetTranslationColumnName(string propertyName);
|
||||
}
|
||||
}
|
||||
|
@@ -10,21 +10,29 @@ namespace SqlSugar
|
||||
{
|
||||
public override string GetTranslationTableName(string name)
|
||||
{
|
||||
Check.ArgumentNullException(name, string.Format(ErrorMessage.ObjNotExist, "Table Name Or Column Name"));
|
||||
Check.ArgumentNullException(name, string.Format(ErrorMessage.ObjNotExist, "Table Name"));
|
||||
var context = this.Context;
|
||||
var mappingInfo = context
|
||||
.MappingTables
|
||||
.FirstOrDefault(it => it.EntityName.Equals(name, StringComparison.CurrentCultureIgnoreCase));
|
||||
return "[" + (mappingInfo == null ? name : mappingInfo.DbTableName) + "]";
|
||||
}
|
||||
public override string GetTranslationColumnName(string name)
|
||||
public override string GetTranslationColumnName(string entityName, string propertyName)
|
||||
{
|
||||
Check.ArgumentNullException(name, string.Format(ErrorMessage.ObjNotExist, "Table Name Or Column Name"));
|
||||
Check.ArgumentNullException(entityName, string.Format(ErrorMessage.ObjNotExist, "Table Name"));
|
||||
Check.ArgumentNullException(propertyName, string.Format(ErrorMessage.ObjNotExist, "Column Name"));
|
||||
var context = this.Context;
|
||||
var mappingInfo = context
|
||||
.MappingColumns
|
||||
.FirstOrDefault(it => it.EntityPropertyName.Equals(name, StringComparison.CurrentCultureIgnoreCase));
|
||||
return (mappingInfo == null ? "["+name+"]" : "["+mappingInfo.DbColumnName+"]");
|
||||
.FirstOrDefault(it =>
|
||||
it.EntityName.Equals(entityName, StringComparison.CurrentCultureIgnoreCase)&&
|
||||
it.EntityPropertyName.Equals(propertyName, StringComparison.CurrentCultureIgnoreCase));
|
||||
return (mappingInfo == null ? "["+ propertyName + "]" : "["+mappingInfo.DbColumnName+"]");
|
||||
}
|
||||
|
||||
public override string GetTranslationColumnName(string propertyName)
|
||||
{
|
||||
return "[" + propertyName + "]";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -253,6 +253,7 @@ namespace SqlSugar
|
||||
sqlBuilder.InsertBuilder.LambdaExpressions = InstanceFactory.GetLambdaExpressions(base.CurrentConnectionConfig);
|
||||
sqlBuilder.Context = reval.SqlBuilder.InsertBuilder.Context = this;
|
||||
reval.Init();
|
||||
reval.InsertBuilder.EntityInfo = reval.EntityInfo;
|
||||
return reval;
|
||||
}
|
||||
public virtual IInsertable<T> Insertable<T>(List<T> insertObjs) where T : class, new()
|
||||
|
Reference in New Issue
Block a user