This commit is contained in:
sunkaixuan
2017-05-22 01:32:35 +08:00
parent 2e1c29a06c
commit ce258d4709
8 changed files with 60 additions and 20 deletions

View File

@@ -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;
}
}
}

View File

@@ -36,6 +36,7 @@ namespace OrmTest
/***Demo***/
OrmTest.Demo.Query.Init();
OrmTest.Demo.Insert.Init();
OrmTest.Demo.Delete.Init();
}
}
}

View File

@@ -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;

View File

@@ -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;

View File

@@ -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)

View File

@@ -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);
}
}

View File

@@ -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 + "]";
}
}
}

View File

@@ -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()