Code optimization

This commit is contained in:
sunkaixuan
2017-08-17 23:27:08 +08:00
parent 14412a45bd
commit b4bb18edc2
7 changed files with 55 additions and 159 deletions

View File

@@ -186,6 +186,8 @@ namespace OrmTest.Demo
var getDay1List = db.Queryable<Student>().Where(it=>it.CreateTime.Value.Hour==1).ToList();
var getDateAdd = db.Queryable<Student>().Where(it => it.CreateTime.Value.AddDays(1)==DateTime.Now).ToList();
var getDateIsSame= db.Queryable<Student>().Where(it => SqlFunc.DateIsSame(DateTime.Now,DateTime.Now,DateType.Hour)).ToList();
var getSqlList = db.Queryable<Student>().AS("(select * from student) t").ToList();
}
public static void Page()
{

View File

@@ -28,10 +28,49 @@ namespace SqlSugar
#endregion
#region abstract Methods
public abstract string GetTranslationTableName(string name);
public abstract string GetTranslationColumnName(string entityName, string propertyName);
public abstract string GetTranslationColumnName(string propertyName);
public abstract string GetNoTranslationColumnName(string name);
public virtual string GetTranslationTableName(string name)
{
Check.ArgumentNullException(name, string.Format(ErrorMessage.ObjNotExist, "Table Name"));
if (name.IsContainsIn("(", ")", SqlTranslationLeft))
{
return name;
}
var context = this.Context;
var mappingInfo = context
.MappingTables
.FirstOrDefault(it => it.EntityName.Equals(name, StringComparison.CurrentCultureIgnoreCase));
name = (mappingInfo == null ? name : mappingInfo.DbTableName);
if (name.IsContainsIn("(", ")", SqlTranslationLeft))
{
return name;
}
return SqlTranslationLeft + name + SqlTranslationRight;
}
public virtual string GetTranslationColumnName(string entityName, string propertyName)
{
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.EntityName.Equals(entityName, StringComparison.CurrentCultureIgnoreCase) &&
it.PropertyName.Equals(propertyName, StringComparison.CurrentCultureIgnoreCase));
return (mappingInfo == null ? SqlTranslationLeft + propertyName + SqlTranslationRight : SqlTranslationLeft + mappingInfo.DbColumnName + SqlTranslationRight);
}
public virtual string GetTranslationColumnName(string propertyName)
{
if (propertyName.Contains(SqlTranslationLeft)) return propertyName;
else
return SqlTranslationLeft + propertyName + SqlTranslationRight;
}
public virtual string GetNoTranslationColumnName(string name)
{
if (!name.Contains(SqlTranslationLeft)) return name;
return name == null ? string.Empty : Regex.Match(name, @".*"+"\\"+SqlTranslationLeft+"(.*?)"+"\\"+SqlTranslationRight+"").Groups[1].Value;
}
#endregion
#region Common SqlTemplate
@@ -44,6 +83,8 @@ namespace SqlSugar
return " HAVING " + sqlString;
}
public virtual string SqlParameterKeyWord { get { return "@"; } }
public abstract string SqlTranslationLeft { get; }
public abstract string SqlTranslationRight { get; }
public virtual string SqlFalse { get { return "1=2 "; } }
public virtual string SqlDateNow { get { return "GETDATE()"; } }
#endregion

View File

@@ -6,44 +6,7 @@ namespace SqlSugar
{
public class MySqlBuilder : SqlBuilderProvider
{
public override string GetTranslationTableName(string name)
{
Check.ArgumentNullException(name, string.Format(ErrorMessage.ObjNotExist, "Table Name"));
if (name.IsContainsIn("`", "(", ")"))
{
return name;
}
var context = this.Context;
var mappingInfo = context
.MappingTables
.FirstOrDefault(it => it.EntityName.Equals(name, StringComparison.CurrentCultureIgnoreCase));
name = (mappingInfo == null ? name : mappingInfo.DbTableName);
return "`" + name + "`";
}
public override string GetTranslationColumnName(string entityName, string propertyName)
{
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.EntityName.Equals(entityName, StringComparison.CurrentCultureIgnoreCase) &&
it.PropertyName.Equals(propertyName, StringComparison.CurrentCultureIgnoreCase));
return (mappingInfo == null ? "`" + propertyName + "`" : "`" + mappingInfo.DbColumnName + "`");
}
public override string GetTranslationColumnName(string propertyName)
{
if (propertyName.Contains("`")) return propertyName;
else
return "`" + propertyName + "`";
}
public override string GetNoTranslationColumnName(string name)
{
if (!name.Contains("`")) return name;
return name == null ? string.Empty : Regex.Match(name, @".*\`(.*?)\`").Groups[1].Value;
}
public override string SqlTranslationLeft { get { return "`"; } }
public override string SqlTranslationRight { get { return "`"; } }
}
}

View File

@@ -9,43 +9,7 @@ namespace SqlSugar
{
public class OracleBuilder : SqlBuilderProvider
{
public override string GetTranslationTableName(string 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));
name = (mappingInfo == null ? name : mappingInfo.DbTableName);
if (name.Contains("\""))
return name;
else
return "\"" + name + "\"";
}
public override string GetTranslationColumnName(string entityName, string propertyName)
{
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.EntityName.Equals(entityName, StringComparison.CurrentCultureIgnoreCase) &&
it.PropertyName.Equals(propertyName, StringComparison.CurrentCultureIgnoreCase));
return (mappingInfo == null ? "\"" + propertyName + "\"" : "\"" + mappingInfo.DbColumnName + "\"");
}
public override string GetTranslationColumnName(string propertyName)
{
if (propertyName.Contains("\"")) return propertyName;
else
return "\"" + propertyName + "\"";
}
public override string GetNoTranslationColumnName(string name)
{
if (!name.Contains("\"")) return name;
return name == null ? string.Empty : Regex.Match(name, @".*""(.*?)""").Groups[1].Value;
}
public override string SqlTranslationLeft { get { return "\""; } }
public override string SqlTranslationRight { get { return "\""; } }
}
}

View File

@@ -9,44 +9,7 @@ namespace SqlSugar
{
public class SqlServerBuilder : SqlBuilderProvider
{
public override string GetTranslationTableName(string name)
{
Check.ArgumentNullException(name, string.Format(ErrorMessage.ObjNotExist, "Table Name"));
if (name.IsContainsIn("(", ")", "["))
{
return name;
}
var context = this.Context;
var mappingInfo = context
.MappingTables
.FirstOrDefault(it => it.EntityName.Equals(name, StringComparison.CurrentCultureIgnoreCase));
name = (mappingInfo == null ? name : mappingInfo.DbTableName);
return "[" + name + "]";
}
public override string GetTranslationColumnName(string entityName, string propertyName)
{
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.EntityName.Equals(entityName, StringComparison.CurrentCultureIgnoreCase) &&
it.PropertyName.Equals(propertyName, StringComparison.CurrentCultureIgnoreCase));
return (mappingInfo == null ? "[" + propertyName + "]" : "[" + mappingInfo.DbColumnName + "]");
}
public override string GetTranslationColumnName(string propertyName)
{
if (propertyName.Contains("[")) return propertyName;
else
return "[" + propertyName + "]";
}
public override string GetNoTranslationColumnName(string name)
{
if (!name.Contains("[")) return name;
return name == null ? string.Empty : Regex.Match(name, @".*\[(.*?)\]").Groups[1].Value;
}
public override string SqlTranslationLeft { get { return "["; } }
public override string SqlTranslationRight { get { return "]"; } }
}
}

View File

@@ -6,44 +6,7 @@ namespace SqlSugar
{
public class SqliteBuilder : SqlBuilderProvider
{
public override string GetTranslationTableName(string name)
{
Check.ArgumentNullException(name, string.Format(ErrorMessage.ObjNotExist, "Table Name"));
if (name.IsContainsIn("`", "(", ")"))
{
return 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 entityName, string propertyName)
{
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.EntityName.Equals(entityName, StringComparison.CurrentCultureIgnoreCase) &&
it.PropertyName.Equals(propertyName, StringComparison.CurrentCultureIgnoreCase));
return (mappingInfo == null ? "`" + propertyName + "`" : "`" + mappingInfo.DbColumnName + "`");
}
public override string GetTranslationColumnName(string propertyName)
{
if (propertyName.Contains("`")) return propertyName;
else
return "`" + propertyName + "`";
}
public override string GetNoTranslationColumnName(string name)
{
if (!name.Contains("`")) return name;
return name == null ? string.Empty : Regex.Match(name, @".*\`(.*?)\`").Groups[1].Value;
}
public override string SqlTranslationLeft { get { return "`"; } }
public override string SqlTranslationRight { get { return "`"; } }
}
}