Update Oracle

This commit is contained in:
sunkaixuan
2017-08-03 23:23:55 +08:00
parent f1b5973e32
commit 34082c972a
2 changed files with 51 additions and 9 deletions

View File

@@ -17,10 +17,10 @@ namespace SqlSugar
.MappingTables
.FirstOrDefault(it => it.EntityName.Equals(name, StringComparison.CurrentCultureIgnoreCase));
name = (mappingInfo == null ? name : mappingInfo.DbTableName);
if (name.Contains("["))
if (name.Contains("\""))
return name;
else
return "[" + name + "]";
return "\"" + name + "\"";
}
public override string GetTranslationColumnName(string entityName, string propertyName)
{
@@ -32,20 +32,20 @@ namespace SqlSugar
.FirstOrDefault(it =>
it.EntityName.Equals(entityName, StringComparison.CurrentCultureIgnoreCase) &&
it.PropertyName.Equals(propertyName, StringComparison.CurrentCultureIgnoreCase));
return (mappingInfo == null ? "[" + propertyName + "]" : "[" + mappingInfo.DbColumnName + "]");
return (mappingInfo == null ? "\"" + propertyName + "\"" : "\"" + mappingInfo.DbColumnName + "\"");
}
public override string GetTranslationColumnName(string propertyName)
{
if (propertyName.Contains("[")) return propertyName;
if (propertyName.Contains("\"")) return propertyName;
else
return "[" + propertyName + "]";
return "\"" + propertyName + "\"";
}
public override string GetNoTranslationColumnName(string name)
{
if (!name.Contains("[")) return name;
return name == null ? string.Empty : Regex.Match(name, @".*\[(.*?)\]").Groups[1].Value;
if (!name.Contains("\"")) return name;
return name == null ? string.Empty : Regex.Match(name, @".*""(.*?)""").Groups[1].Value;
}
}
}

View File

@@ -14,11 +14,53 @@ namespace SqlSugar
public SqlSugarClient Context { get; set; }
public OracleExpressionContext()
{
base.DbMehtods = new SqlServerMethod();
base.DbMehtods = new OracleMethod();
}
public override string GetTranslationTableName(string entityName, bool isMapping = true)
{
Check.ArgumentNullException(entityName, string.Format(ErrorMessage.ObjNotExist, "Table Name"));
if (IsTranslationText(entityName)) return entityName;
if (isMapping && this.MappingTables.IsValuable())
{
if (entityName.Contains("."))
{
var columnInfo = entityName.Split('.');
var mappingInfo = this.MappingTables.FirstOrDefault(it => it.EntityName.Equals(columnInfo.Last(), StringComparison.CurrentCultureIgnoreCase));
if (mappingInfo != null)
{
columnInfo[columnInfo.Length - 1] = mappingInfo.EntityName;
}
return string.Join(".", columnInfo.Select(it => GetTranslationText(it)));
}
else
{
var mappingInfo = this.MappingTables.FirstOrDefault(it => it.EntityName.Equals(entityName, StringComparison.CurrentCultureIgnoreCase));
return "\"" + (mappingInfo == null ? entityName : mappingInfo.EntityName) + "\"";
}
}
else
{
if (entityName.Contains("."))
{
return string.Join(".", entityName.Split('.').Select(it => GetTranslationText(it)));
}
else
{
return GetTranslationText(entityName);
}
}
}
public override bool IsTranslationText(string name)
{
return name.Contains("\"") && name.Contains("\"");
}
public override string GetTranslationText(string name)
{
return "\"" + name + "\"";
}
}
public partial class SqlServerMethod : DefaultDbMethod, IDbMethods
public partial class OracleMethod : DefaultDbMethod, IDbMethods
{
}