123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- using System;
- using System.Linq;
- namespace SqlSugar.BzTDengineCore
- {
- public class TDengineBuilder : SqlBuilderProvider
- {
- public override string SqlTranslationLeft => "`";
- public override string SqlTranslationRight => "`";
- public override string SqlDateNow => "current_date";
- public override string FullSqlDateNow => " now() ";
- public bool isAutoToLower
- {
- get
- {
- if (Context.CurrentConnectionConfig.MoreSettings == null) return true;
- else if (
- Context.CurrentConnectionConfig.MoreSettings.PgSqlIsAutoToLower == false &&
- Context.CurrentConnectionConfig.MoreSettings?.PgSqlIsAutoToLowerCodeFirst == false)
- {
- return false;
- }
- else
- {
- return true;
- }
- }
- }
- public override string GetTranslationColumnName(string propertyName)
- {
- if (propertyName.Contains(".") && !propertyName.Contains(SqlTranslationLeft))
- {
- return string.Join(".", propertyName.Split('.').Select(it => $"{SqlTranslationLeft}{it.ToLower(isAutoToLower)}{SqlTranslationRight}"));
- }
- if (propertyName.Contains(SqlTranslationLeft)) return propertyName;
- else
- return SqlTranslationLeft + propertyName.ToLower(isAutoToLower) + SqlTranslationRight;
- }
- //public override string GetNoTranslationColumnName(string name)
- //{
- // return name.TrimEnd(Convert.ToChar(SqlTranslationRight)).TrimStart(Convert.ToChar(SqlTranslationLeft)).ToLower();
- //}
- 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 = Context;
- var mappingInfo = context
- .MappingColumns
- .FirstOrDefault(it =>
- it.EntityName.Equals(entityName, StringComparison.CurrentCultureIgnoreCase) &&
- it.PropertyName.Equals(propertyName, StringComparison.CurrentCultureIgnoreCase));
- return mappingInfo == null ? SqlTranslationLeft + propertyName.ToLower(isAutoToLower) + SqlTranslationRight : SqlTranslationLeft + mappingInfo.DbColumnName.ToLower(isAutoToLower) + SqlTranslationRight;
- }
- public override string GetTranslationTableName(string name)
- {
- Check.ArgumentNullException(name, string.Format(ErrorMessage.ObjNotExist, "Table Name"));
- var context = Context;
- var mappingInfo = context
- .MappingTables
- .FirstOrDefault(it => it.EntityName.Equals(name, StringComparison.CurrentCultureIgnoreCase));
- if (mappingInfo == null && name.Contains(".") && name.Contains("`"))
- {
- return name;
- }
- name = mappingInfo == null ? name : mappingInfo.DbTableName;
- if (name.Contains(".") && !name.Contains("(") && !name.Contains("\".\""))
- {
- return string.Join(".", name.ToLower(isAutoToLower).Split('.').Select(it => SqlTranslationLeft + it + SqlTranslationRight));
- }
- else if (name.Contains("("))
- {
- return name;
- }
- else if (name.Contains(SqlTranslationLeft) && name.Contains(SqlTranslationRight))
- {
- return name;
- }
- else
- {
- return SqlTranslationLeft + name.ToLower(isAutoToLower).TrimEnd('"').TrimStart('"') + SqlTranslationRight;
- }
- }
- public override string GetUnionFomatSql(string sql)
- {
- return " ( " + sql + " ) ";
- }
- public override Type GetNullType(string tableName, string columnName)
- {
- if (tableName != null)
- tableName = tableName.Trim();
- var columnInfo = Context.DbMaintenance.GetColumnInfosByTableName(tableName).FirstOrDefault(z => z.DbColumnName?.ToLower() == columnName?.ToLower());
- if (columnInfo != null)
- {
- var cTypeName = Context.Ado.DbBind.GetCsharpTypeNameByDbTypeName(columnInfo.DataType);
- var value = SqlSugar.UtilMethods.GetTypeByTypeName(cTypeName);
- if (value != null)
- {
- var key = "GetNullType_" + tableName + columnName;
- return new ReflectionInoCacheService().GetOrCreate(key, () => value);
- }
- }
- return null;
- }
- }
- }
|