Merge branch 'dev' of github.com:sunkaixuan/SqlSugar

# Conflicts:
#	Src/Asp.Net/SqlSugar/Properties/AssemblyInfo.cs
#	Src/Asp.Net/SqlSugar/SqlSugar.nuspec
This commit is contained in:
sunkaixuan
2017-07-21 09:47:20 +08:00
12 changed files with 85 additions and 44 deletions

View File

@@ -164,7 +164,7 @@ namespace OrmTest.Demo
var getFirstOrDefault = db.Queryable<Student>().First();
var getByWhere = db.Queryable<Student>().Where(it => it.Id == 1 || it.Name == "a").ToList();
var getByFuns = db.Queryable<Student>().Where(it => SqlFunc.IsNullOrEmpty(it.Name)).ToList();
var sum = db.Queryable<Student>().Sum(it => it.Id);
var sum = db.Queryable<Student>().Select(it => it.SchoolId).ToList();
var sum2 = db.Queryable<Student,School>((st,sc)=>st.SchoolId==sc.Id).Sum((st,sc) => sc.Id);
var isAny = db.Queryable<Student>().Where(it => it.Id == -1).Any();
var isAny2 = db.Queryable<Student>().Any(it => it.Id == -1);

View File

@@ -135,7 +135,7 @@ namespace SqlSugar
}
else
{
reval.Add((T)Convert.ChangeType(re.GetValue(0), type));
reval.Add((T)Convert.ChangeType(re.GetValue(0),PubMethod.GetUnderType(type)));
}
}
}

View File

@@ -10,8 +10,9 @@ namespace SqlSugar
#region DML
public virtual List<DbTableInfo> GetViewInfoList()
{
string key = "DbMaintenanceProvider.GetViewInfoList";
var result = GetListOrCache<DbTableInfo>(key, this.GetViewInfoListSql);
string cacheKey = "DbMaintenanceProvider.GetViewInfoList";
cacheKey = GetCacheKey(cacheKey);
var result = GetListOrCache<DbTableInfo>(cacheKey, this.GetViewInfoListSql);
foreach (var item in result)
{
item.DbObjectType = DbObjectType.View;
@@ -20,8 +21,9 @@ namespace SqlSugar
}
public virtual List<DbTableInfo> GetTableInfoList()
{
string key = "DbMaintenanceProvider.GetTableInfoList";
var result = GetListOrCache<DbTableInfo>(key, this.GetTableInfoListSql);
string cacheKey = "DbMaintenanceProvider.GetTableInfoList";
cacheKey = GetCacheKey(cacheKey);
var result = GetListOrCache<DbTableInfo>(cacheKey, this.GetTableInfoListSql);
foreach (var item in result)
{
item.DbObjectType = DbObjectType.Table;
@@ -31,12 +33,14 @@ namespace SqlSugar
public virtual List<DbColumnInfo> GetColumnInfosByTableName(string tableName)
{
if (string.IsNullOrEmpty(tableName)) return new List<DbColumnInfo>();
string key = "DbMaintenanceProvider.GetColumnInfosByTableName." +this.SqlBuilder.GetNoTranslationColumnName(tableName).ToLower();
return GetListOrCache<DbColumnInfo>(key, string.Format(this.GetColumnInfosByTableNameSql, tableName));
string cacheKey = "DbMaintenanceProvider.GetColumnInfosByTableName." + this.SqlBuilder.GetNoTranslationColumnName(tableName).ToLower();
cacheKey = GetCacheKey(cacheKey);
return GetListOrCache<DbColumnInfo>(cacheKey, string.Format(this.GetColumnInfosByTableNameSql, tableName));
}
public virtual List<string> GetIsIdentities(string tableName)
{
string cacheKey = "DbMaintenanceProvider.GetIsIdentities" +this.SqlBuilder.GetNoTranslationColumnName(tableName).ToLower();
string cacheKey = "DbMaintenanceProvider.GetIsIdentities" + this.SqlBuilder.GetNoTranslationColumnName(tableName).ToLower();
cacheKey = GetCacheKey(cacheKey);
return this.Context.RewritableMethods.GetCacheInstance<List<string>>().Func(cacheKey,
(cm, key) =>
{
@@ -50,7 +54,8 @@ namespace SqlSugar
}
public virtual List<string> GetPrimaries(string tableName)
{
string cacheKey = "DbMaintenanceProvider.GetPrimaries" +this.SqlBuilder.GetNoTranslationColumnName(tableName).ToLower();
string cacheKey = "DbMaintenanceProvider.GetPrimaries" + this.SqlBuilder.GetNoTranslationColumnName(tableName).ToLower();
cacheKey = GetCacheKey(cacheKey);
return this.Context.RewritableMethods.GetCacheInstance<List<string>>().Func(cacheKey,
(cm, key) =>
{
@@ -108,6 +113,7 @@ namespace SqlSugar
{
this.Context.Ado.CheckConnection();
string sql = this.CheckSystemTablePermissionsSql;
this.Context.Ado.CheckConnection();
try
{
var oldIsEnableLog = this.Context.Ado.IsEnableLogEvent;
@@ -127,8 +133,8 @@ namespace SqlSugar
public virtual bool AddPrimaryKey(string tableName, string columnName)
{
tableName = this.SqlBuilder.GetTranslationTableName(tableName);
columnName=this.SqlBuilder.GetTranslationTableName(columnName);
string sql = string.Format(this.AddPrimaryKeySql,tableName, string.Format("PK_{0}_{1}",this.SqlBuilder.GetNoTranslationColumnName(tableName), this.SqlBuilder.GetNoTranslationColumnName(columnName)), columnName);
columnName = this.SqlBuilder.GetTranslationTableName(columnName);
string sql = string.Format(this.AddPrimaryKeySql, tableName, string.Format("PK_{0}_{1}", this.SqlBuilder.GetNoTranslationColumnName(tableName), this.SqlBuilder.GetNoTranslationColumnName(columnName)), columnName);
this.Context.Ado.ExecuteCommand(sql);
return true;
}
@@ -156,7 +162,7 @@ namespace SqlSugar
public virtual bool DropTable(string tableName)
{
tableName = this.SqlBuilder.GetTranslationTableName(tableName);
this.Context.Ado.ExecuteCommand(string.Format(this.DropTableSql,tableName));
this.Context.Ado.ExecuteCommand(string.Format(this.DropTableSql, tableName));
return true;
}
public virtual bool DropColumn(string tableName, string columnName)
@@ -193,7 +199,7 @@ namespace SqlSugar
{
oldTableName = this.SqlBuilder.GetTranslationTableName(oldTableName);
newTableName = this.SqlBuilder.GetTranslationTableName(newTableName);
string sql = string.Format(this.BackupTableSql,newTableName , oldTableName, maxBackupDataRows);
string sql = string.Format(this.BackupTableSql, newTableName, oldTableName, maxBackupDataRows);
this.Context.Ado.ExecuteCommand(sql);
return true;
}
@@ -231,21 +237,21 @@ namespace SqlSugar
Check.Exception(columns.IsNullOrEmpty(), "No columns found ");
foreach (var item in columns)
{
string columnName =this.SqlBuilder.GetTranslationTableName(item.DbColumnName);
string columnName = this.SqlBuilder.GetTranslationTableName(item.DbColumnName);
string dataType = item.DataType;
string dataSize = item.Length > 0 ? string.Format("({0})", item.Length) : null;
string nullType = item.IsNullable ? this.CreateTableNull : CreateTableNotNull;
string primaryKey = null;
string identity = item.IsIdentity ? this.CreateTableIdentity : null;
string addItem = string.Format(this.CreateTableColumn,columnName, dataType, dataSize, nullType, primaryKey, identity);
string addItem = string.Format(this.CreateTableColumn, columnName, dataType, dataSize, nullType, primaryKey, identity);
columnArray.Add(addItem);
}
string tableString = string.Format(this.CreateTableSql,this.SqlBuilder.GetTranslationTableName(tableName), string.Join(",\r\n", columnArray));
string tableString = string.Format(this.CreateTableSql, this.SqlBuilder.GetTranslationTableName(tableName), string.Join(",\r\n", columnArray));
return tableString;
}
protected virtual string GetAddColumnSql(string tableName, DbColumnInfo columnInfo)
{
string columnName=this.SqlBuilder.GetTranslationColumnName(columnInfo.DbColumnName);
string columnName = this.SqlBuilder.GetTranslationColumnName(columnInfo.DbColumnName);
tableName = this.SqlBuilder.GetTranslationTableName(tableName);
string dataType = columnInfo.DataType;
string dataSize = columnInfo.Length > 0 ? string.Format("({0})", columnInfo.Length) : null;
@@ -257,7 +263,7 @@ namespace SqlSugar
}
protected virtual string GetUpdateColumnSql(string tableName, DbColumnInfo columnInfo)
{
string columnName =this.SqlBuilder.GetTranslationTableName(columnInfo.DbColumnName);
string columnName = this.SqlBuilder.GetTranslationTableName(columnInfo.DbColumnName);
tableName = this.SqlBuilder.GetTranslationTableName(tableName);
string dataType = columnInfo.DataType;
string dataSize = columnInfo.Length > 0 ? string.Format("({0})", columnInfo.Length) : null;
@@ -267,6 +273,10 @@ namespace SqlSugar
string result = string.Format(this.AlterColumnToTableSql, tableName, columnName, dataType, dataSize, nullType, primaryKey, identity);
return result;
}
protected virtual string GetCacheKey(string cacheKey)
{
return this.Context.CurrentConnectionConfig.DbType + "." + this.Context.Ado.Connection.Database +"."+ cacheKey;
}
#endregion
}
}

View File

@@ -31,5 +31,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("4.2.1.2")]
[assembly: AssemblyFileVersion("4.2.1.2")]
[assembly: AssemblyVersion("4.2.1.6")]
[assembly: AssemblyFileVersion("4.2.1.6")]

View File

@@ -167,6 +167,7 @@ namespace SqlSugar
public override List<DbColumnInfo> GetColumnInfosByTableName(string tableName)
{
string cacheKey = "DbMaintenanceProvider.GetColumnInfosByTableName." + this.SqlBuilder.GetNoTranslationColumnName(tableName).ToLower();
cacheKey = GetCacheKey(cacheKey);
return this.Context.RewritableMethods.GetCacheInstance<List<DbColumnInfo>>().Func(cacheKey,
(cm, key) =>
{

View File

@@ -2,7 +2,7 @@
<package >
<metadata>
<id>sqlSugar</id>
<version>4.2.1.2</version>
<version>4.2.1.6</version>
<title>SqlSugar SqlServer ORM</title>
<authors>sun kaixuan</authors>
<owners>landa</owners>