Add attribute propertty IsOnlyIgnoreUpdate

This commit is contained in:
sunkaixuan 2019-05-31 20:22:27 +08:00
parent 19ab13134a
commit c2c1a013d5
6 changed files with 29 additions and 1 deletions

View File

@ -38,6 +38,20 @@ namespace OrmTest
Dc=it.Int Dc=it.Int
}).ToSql().Key; }).ToSql().Key;
UValidate.Check(sql, "SELECT [Dc] AS [DcNull] , [Int] AS [Dc] FROM [UnitSelectTest]", "Queryable"); UValidate.Check(sql, "SELECT [Dc] AS [DcNull] , [Int] AS [Dc] FROM [UnitSelectTest]", "Queryable");
sql= Db.Updateable<UnitSelectTest2>(new UnitSelectTest2()).ToSql().Key;
}
public class UnitSelectTest2
{
[SqlSugar.SugarColumn(IsOnlyIgnoreUpdate = true)]
public decimal? DcNull { get; set; }
public decimal Dc { get; set; }
public int? IntNull { get; set; }
[SqlSugar.SugarColumn(IsPrimaryKey = true)]
public decimal Int { get; set; }
} }
public class UnitSelectTest public class UnitSelectTest

View File

@ -10,7 +10,7 @@ namespace OrmTest
{ {
public static void Check(object a, object b, object name) public static void Check(object a, object b, object name)
{ {
if (a?.ToString() != b?.ToString()) if (a?.ToString()?.Trim() != b?.ToString()?.Trim())
{ {
throw new Exception(name + " error"); throw new Exception(name + " error");
} }

View File

@ -173,6 +173,7 @@ namespace SqlSugar
column.NoSerialize = sugarColumn.NoSerialize; column.NoSerialize = sugarColumn.NoSerialize;
column.DefaultValue = sugarColumn.DefaultValue; column.DefaultValue = sugarColumn.DefaultValue;
column.IndexGroupNameList = sugarColumn.IndexGroupNameList; column.IndexGroupNameList = sugarColumn.IndexGroupNameList;
column.IsOnlyIgnoreUpdate = sugarColumn.IsOnlyIgnoreUpdate;
} }
else else
{ {

View File

@ -291,6 +291,11 @@ namespace SqlSugar
sqlBuilder.UpdateBuilder.LambdaExpressions = InstanceFactory.GetLambdaExpressions(this.CurrentConnectionConfig); sqlBuilder.UpdateBuilder.LambdaExpressions = InstanceFactory.GetLambdaExpressions(this.CurrentConnectionConfig);
sqlBuilder.Context = result.SqlBuilder.UpdateBuilder.Context = this; sqlBuilder.Context = result.SqlBuilder.UpdateBuilder.Context = this;
result.Init(); result.Init();
var ignoreColumns = result.EntityInfo.Columns.Where(it => it.IsOnlyIgnoreUpdate).ToList();
if (ignoreColumns!=null&&ignoreColumns.Any())
{
result = (UpdateableProvider<T>)result.IgnoreColumns(ignoreColumns.Select(it=>it.PropertyName).ToArray());
}
return result; return result;
} }

View File

@ -27,6 +27,7 @@ namespace SqlSugar
public int DecimalDigits { get; set; } public int DecimalDigits { get; set; }
public string OracleSequenceName { get; set; } public string OracleSequenceName { get; set; }
public bool IsOnlyIgnoreInsert { get; set; } public bool IsOnlyIgnoreInsert { get; set; }
public bool IsOnlyIgnoreUpdate { get; set; }
public bool IsTranscoding { get; set; } public bool IsTranscoding { get; set; }
public string SerializeDateTimeFormat { get; set; } public string SerializeDateTimeFormat { get; set; }
public bool IsJson { get; set; } public bool IsJson { get; set; }

View File

@ -112,6 +112,13 @@ namespace SqlSugar
set { _IsOnlyIgnoreInsert = value; } set { _IsOnlyIgnoreInsert = value; }
} }
private bool _IsOnlyIgnoreUpdate;
public bool IsOnlyIgnoreUpdate
{
get { return _IsOnlyIgnoreUpdate; }
set { _IsOnlyIgnoreUpdate = value; }
}
private bool _IsEnableUpdateVersionValidation; private bool _IsEnableUpdateVersionValidation;
public bool IsEnableUpdateVersionValidation { public bool IsEnableUpdateVersionValidation {