- 增加 IInsert InsertColumns/IgnoreColumns 方法重载输入 string[];#275

This commit is contained in:
28810 2020-04-14 23:49:25 +08:00
parent 0ac564f801
commit e62e425646
5 changed files with 60 additions and 12 deletions

View File

@ -120,6 +120,13 @@
清空状态数据 清空状态数据
</summary> </summary>
</member> </member>
<member name="M:FreeSql.DbSet`1.RemoveAsync(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}})">
<summary>
根据 lambda 条件删除数据
</summary>
<param name="predicate"></param>
<returns></returns>
</member>
<member name="M:FreeSql.DbSet`1.Add(`0)"> <member name="M:FreeSql.DbSet`1.Add(`0)">
<summary> <summary>
添加 添加
@ -214,6 +221,15 @@
</summary> </summary>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:FreeSql.FreeSqlRepositoryDependencyInjection.AddFreeRepository(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{FreeSql.FluentDataFilter},System.Reflection.Assembly[])">
<summary>
批量注入 Repository可以参考代码自行调整
</summary>
<param name="services"></param>
<param name="globalDataFilter"></param>
<param name="assemblies"></param>
<returns></returns>
</member>
<member name="M:FreeSql.IBaseRepository.AsType(System.Type)"> <member name="M:FreeSql.IBaseRepository.AsType(System.Type)">
<summary> <summary>
动态Type在使用 Repository&lt;object&gt; 后使用本方法,指定实体类型 动态Type在使用 Repository&lt;object&gt; 后使用本方法,指定实体类型

View File

@ -907,6 +907,13 @@
<param name="columns">lambda选择列</param> <param name="columns">lambda选择列</param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:FreeSql.IInsert`1.InsertColumns(System.String[])">
<summary>
只插入的列
</summary>
<param name="columns">属性名,或者字段名</param>
<returns></returns>
</member>
<member name="M:FreeSql.IInsert`1.IgnoreColumns(System.Linq.Expressions.Expression{System.Func{`0,System.Object}})"> <member name="M:FreeSql.IInsert`1.IgnoreColumns(System.Linq.Expressions.Expression{System.Func{`0,System.Object}})">
<summary> <summary>
忽略的列IgnoreColumns(a => a.Name) | IgnoreColumns(a => new{a.Name,a.Time}) | IgnoreColumns(a => new[]{"name","time"}) 忽略的列IgnoreColumns(a => a.Name) | IgnoreColumns(a => new{a.Name,a.Time}) | IgnoreColumns(a => new[]{"name","time"})
@ -914,6 +921,13 @@
<param name="columns">lambda选择列</param> <param name="columns">lambda选择列</param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:FreeSql.IInsert`1.IgnoreColumns(System.String[])">
<summary>
忽略的列
</summary>
<param name="columns">属性名,或者字段名</param>
<returns></returns>
</member>
<member name="M:FreeSql.IInsert`1.InsertIdentity"> <member name="M:FreeSql.IInsert`1.InsertIdentity">
<summary> <summary>
指定可插入自增字段 指定可插入自增字段

View File

@ -48,12 +48,25 @@ namespace FreeSql
/// <param name="columns">lambda选择列</param> /// <param name="columns">lambda选择列</param>
/// <returns></returns> /// <returns></returns>
IInsert<T1> InsertColumns(Expression<Func<T1, object>> columns); IInsert<T1> InsertColumns(Expression<Func<T1, object>> columns);
/// <summary>
/// 只插入的列
/// </summary>
/// <param name="columns">属性名,或者字段名</param>
/// <returns></returns>
IInsert<T1> InsertColumns(string[] columns);
/// <summary> /// <summary>
/// 忽略的列IgnoreColumns(a => a.Name) | IgnoreColumns(a => new{a.Name,a.Time}) | IgnoreColumns(a => new[]{"name","time"}) /// 忽略的列IgnoreColumns(a => a.Name) | IgnoreColumns(a => new{a.Name,a.Time}) | IgnoreColumns(a => new[]{"name","time"})
/// </summary> /// </summary>
/// <param name="columns">lambda选择列</param> /// <param name="columns">lambda选择列</param>
/// <returns></returns> /// <returns></returns>
IInsert<T1> IgnoreColumns(Expression<Func<T1, object>> columns); IInsert<T1> IgnoreColumns(Expression<Func<T1, object>> columns);
/// <summary>
/// 忽略的列
/// </summary>
/// <param name="columns">属性名,或者字段名</param>
/// <returns></returns>
IInsert<T1> IgnoreColumns(string[] columns);
/// <summary> /// <summary>
/// 指定可插入自增字段 /// 指定可插入自增字段

View File

@ -442,19 +442,24 @@ namespace FreeSql.Internal.CommonProvider
public abstract long ExecuteIdentity(); public abstract long ExecuteIdentity();
public abstract List<T1> ExecuteInserted(); public abstract List<T1> ExecuteInserted();
public IInsert<T1> IgnoreColumns(Expression<Func<T1, object>> columns) public IInsert<T1> IgnoreColumns(Expression<Func<T1, object>> columns) => IgnoreColumns(_commonExpression.ExpressionSelectColumns_MemberAccess_New_NewArrayInit(null, columns?.Body, false, null));
public IInsert<T1> InsertColumns(Expression<Func<T1, object>> columns) => InsertColumns(_commonExpression.ExpressionSelectColumns_MemberAccess_New_NewArrayInit(null, columns?.Body, false, null));
public IInsert<T1> IgnoreColumns(string[] columns)
{ {
var cols = _commonExpression.ExpressionSelectColumns_MemberAccess_New_NewArrayInit(null, columns?.Body, false, null).Distinct(); var cols = columns.Distinct().ToDictionary(a => a);
_ignore.Clear();
foreach (var col in cols) _ignore.Add(col, true);
return this;
}
public IInsert<T1> InsertColumns(Expression<Func<T1, object>> columns)
{
var cols = _commonExpression.ExpressionSelectColumns_MemberAccess_New_NewArrayInit(null, columns?.Body, false, null).ToDictionary(a => a, a => true);
_ignore.Clear(); _ignore.Clear();
foreach (var col in _table.Columns.Values) foreach (var col in _table.Columns.Values)
if (cols.ContainsKey(col.Attribute.Name) == false && _auditValueChangedDict.ContainsKey(col.Attribute.Name) == false) if (cols.ContainsKey(col.Attribute.Name) == true || cols.ContainsKey(col.CsName) == true)
_ignore.Add(col.Attribute.Name, true);
return this;
}
public IInsert<T1> InsertColumns(string[] columns)
{
var cols = columns.Distinct().ToDictionary(a => a);
_ignore.Clear();
foreach (var col in _table.Columns.Values)
if (cols.ContainsKey(col.Attribute.Name) == false && cols.ContainsKey(col.CsName) == false && _auditValueChangedDict.ContainsKey(col.Attribute.Name) == false)
_ignore.Add(col.Attribute.Name, true); _ignore.Add(col.Attribute.Name, true);
return this; return this;
} }

View File

@ -309,7 +309,7 @@ namespace FreeSql.Internal.CommonProvider
public IUpdate<T1> IgnoreColumns(string[] columns) public IUpdate<T1> IgnoreColumns(string[] columns)
{ {
var cols = columns.ToDictionary(a => a); var cols = columns.Distinct().ToDictionary(a => a);
_ignore.Clear(); _ignore.Clear();
foreach (var col in _table.Columns.Values) foreach (var col in _table.Columns.Values)
if (cols.ContainsKey(col.Attribute.Name) == true || cols.ContainsKey(col.CsName) == true) if (cols.ContainsKey(col.Attribute.Name) == true || cols.ContainsKey(col.CsName) == true)
@ -318,7 +318,7 @@ namespace FreeSql.Internal.CommonProvider
} }
public IUpdate<T1> UpdateColumns(string[] columns) public IUpdate<T1> UpdateColumns(string[] columns)
{ {
var cols = columns.ToDictionary(a => a); var cols = columns.Distinct().ToDictionary(a => a);
_ignore.Clear(); _ignore.Clear();
foreach (var col in _table.Columns.Values) foreach (var col in _table.Columns.Values)
if (cols.ContainsKey(col.Attribute.Name) == false && cols.ContainsKey(col.CsName) == false && _auditValueChangedDict.ContainsKey(col.Attribute.Name) == false) if (cols.ContainsKey(col.Attribute.Name) == false && cols.ContainsKey(col.CsName) == false && _auditValueChangedDict.ContainsKey(col.Attribute.Name) == false)