Support Json

This commit is contained in:
sunkaixuan 2019-05-16 22:16:55 +08:00
parent bcd187ec58
commit 1d3bfdadfd
6 changed files with 32 additions and 7 deletions

View File

@ -19,6 +19,7 @@ namespace OrmTest
OnLogExecuting = (sql, p) =>
{
Console.WriteLine(sql);
Console.WriteLine(string.Join(",", p?.Select(it => it.ParameterName + ":" + it.Value)));
}
}
});

View File

@ -12,10 +12,10 @@ namespace OrmTest
public static void Json()
{
Db.CodeFirst.InitTables<JsonTest>();
Db.DbMaintenance.TruncateTable("JsonTest");
Db.DbMaintenance.TruncateTable<JsonTest>();
Db.Insertable(new JsonTest() { Order = new Order { Id = 1, Name = "order1" } }).ExecuteCommand();
var list = Db.Queryable<JsonTest>().ToList();
Db.Updateable(new JsonTest() { Id=1,Order = new Order { Id = 2, Name = "order2" } }).ExecuteCommand();
Db.Updateable(new JsonTest() { Id = 1, Order = new Order { Id = 2, Name = "order2" } }).ExecuteCommand();
var list2 = Db.Queryable<JsonTest>().ToList();
}
}

View File

@ -171,6 +171,12 @@ namespace SqlSugar
this.Context.Ado.ExecuteCommand(string.Format(this.DropTableSql, tableName));
return true;
}
public virtual bool TruncateTable<T>()
{
this.Context.InitMppingInfo<T>();
return this.TruncateTable(this.Context.EntityMaintenance.GetEntityInfo<T>().DbTableName);
}
public virtual bool DropColumn(string tableName, string columnName)
{
columnName = this.SqlBuilder.GetTranslationColumnName(columnName);

View File

@ -415,7 +415,11 @@ namespace SqlSugar
{
if (this.EntityInfo.Columns.Any(it => it.IsTranscoding))
{
Check.Exception(true, ErrorMessage.GetThrowMessage("UpdateColumns no support IsTranscoding", "UpdateColumns方式更新不支持IsTranscoding你可以使用db.Updateable(实体)的方式更新"));
Check.Exception(true, ErrorMessage.GetThrowMessage("UpdateColumns no support IsTranscoding", "SetColumns方式更新不支持IsTranscoding你可以使用db.Updateable(实体)的方式更新"));
}
if (this.EntityInfo.Columns.Any(it => it.IsJson))
{
Check.Exception(true, ErrorMessage.GetThrowMessage("UpdateColumns no support IsJson", "SetColumns方式更新不支持IsJson你可以使用db.Updateable(实体)的方式更新"));
}
}
private void SetUpdateItemByDic(int i, T item, List<DbColumnInfo> updateItem)

View File

@ -101,6 +101,19 @@ namespace SqlSugar
var result = GetNewExpressionValue(item);
this.Context.Result.Append(base.Context.GetEqString(memberName, result));
}
else if (item is MemberInitExpression)
{
try
{
var value =ExpressionTool.DynamicInvoke(item);
var parameterName = AppendParameter(value);
parameter.Context.Result.Append(base.Context.GetEqString(memberName, parameterName));
}
catch (Exception ex)
{
throw new NotSupportedException("Not Supported " + item.ToString() + " " + ex.Message);
}
}
}
}
@ -165,10 +178,10 @@ namespace SqlSugar
}
}
private bool IsSubMethod(MethodCallExpression express)
{
return SubTools.SubItemsConst.Any(it =>express.Object != null && express.Object.Type.Name == "Subqueryable`1");
}
//private bool IsSubMethod(MethodCallExpression express)
//{
// return SubTools.SubItemsConst.Any(it =>express.Object != null && express.Object.Type.Name == "Subqueryable`1");
//}
private bool IsExtMethod(string methodName)
{
if (this.Context.SqlFuncServices == null) return false;

View File

@ -28,6 +28,7 @@ namespace SqlSugar
#region DDL
bool DropTable(string tableName);
bool TruncateTable(string tableName);
bool TruncateTable<T>();
bool CreateTable(string tableName, List<DbColumnInfo> columns,bool isCreatePrimaryKey=true);
bool AddColumn(string tableName, DbColumnInfo column);
bool UpdateColumn(string tableName, DbColumnInfo column);