mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 10:42:52 +08:00
- 增加 IInsert.ToDataTable 方法,为 BulkCopy 操作提供数据,该文件处理了(表名、字段名、类型)映射和忽略列;
This commit is contained in:
parent
ab1d0a2cb5
commit
c268970c71
@ -110,6 +110,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>
|
||||||
添加
|
添加
|
||||||
|
@ -2178,6 +2178,137 @@
|
|||||||
<param name="parms"></param>
|
<param name="parms"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:FreeSql.IAdo.ExecuteReaderAsync(System.Func{System.Data.Common.DbDataReader,System.Threading.Tasks.Task},System.Data.CommandType,System.String,System.Data.Common.DbParameter[])">
|
||||||
|
<summary>
|
||||||
|
查询,若使用读写分离,查询【从库】条件cmdText.StartsWith("SELECT "),否则查询【主库】
|
||||||
|
</summary>
|
||||||
|
<param name="readerHander"></param>
|
||||||
|
<param name="cmdType"></param>
|
||||||
|
<param name="cmdText"></param>
|
||||||
|
<param name="cmdParms"></param>
|
||||||
|
</member>
|
||||||
|
<member name="M:FreeSql.IAdo.ExecuteReaderAsync(System.Func{System.Data.Common.DbDataReader,System.Threading.Tasks.Task},System.String,System.Object)">
|
||||||
|
<summary>
|
||||||
|
查询,ExecuteReaderAsync(dr => {}, "select * from user where age > @age", new { age = 25 })
|
||||||
|
</summary>
|
||||||
|
<param name="cmdText"></param>
|
||||||
|
<param name="parms"></param>
|
||||||
|
</member>
|
||||||
|
<member name="M:FreeSql.IAdo.ExecuteArrayAsync(System.Data.CommandType,System.String,System.Data.Common.DbParameter[])">
|
||||||
|
<summary>
|
||||||
|
查询
|
||||||
|
</summary>
|
||||||
|
<param name="cmdText"></param>
|
||||||
|
<param name="cmdParms"></param>
|
||||||
|
</member>
|
||||||
|
<member name="M:FreeSql.IAdo.ExecuteArrayAsync(System.String,System.Object)">
|
||||||
|
<summary>
|
||||||
|
查询,ExecuteArrayAsync("select * from user where age > @age", new { age = 25 })
|
||||||
|
</summary>
|
||||||
|
<param name="cmdText"></param>
|
||||||
|
<param name="parms"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:FreeSql.IAdo.ExecuteDataSetAsync(System.Data.CommandType,System.String,System.Data.Common.DbParameter[])">
|
||||||
|
<summary>
|
||||||
|
查询
|
||||||
|
</summary>
|
||||||
|
<param name="cmdText"></param>
|
||||||
|
<param name="cmdParms"></param>
|
||||||
|
</member>
|
||||||
|
<member name="M:FreeSql.IAdo.ExecuteDataSetAsync(System.String,System.Object)">
|
||||||
|
<summary>
|
||||||
|
查询,ExecuteDataSetAsync("select * from user where age > @age; select 2", new { age = 25 })
|
||||||
|
</summary>
|
||||||
|
<param name="cmdText"></param>
|
||||||
|
<param name="parms"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:FreeSql.IAdo.ExecuteDataTableAsync(System.Data.CommandType,System.String,System.Data.Common.DbParameter[])">
|
||||||
|
<summary>
|
||||||
|
查询
|
||||||
|
</summary>
|
||||||
|
<param name="cmdText"></param>
|
||||||
|
<param name="cmdParms"></param>
|
||||||
|
</member>
|
||||||
|
<member name="M:FreeSql.IAdo.ExecuteDataTableAsync(System.String,System.Object)">
|
||||||
|
<summary>
|
||||||
|
查询,ExecuteDataTableAsync("select * from user where age > @age", new { age = 25 })
|
||||||
|
</summary>
|
||||||
|
<param name="cmdText"></param>
|
||||||
|
<param name="parms"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:FreeSql.IAdo.ExecuteNonQueryAsync(System.Data.CommandType,System.String,System.Data.Common.DbParameter[])">
|
||||||
|
<summary>
|
||||||
|
在【主库】执行
|
||||||
|
</summary>
|
||||||
|
<param name="cmdType"></param>
|
||||||
|
<param name="cmdText"></param>
|
||||||
|
<param name="cmdParms"></param>
|
||||||
|
</member>
|
||||||
|
<member name="M:FreeSql.IAdo.ExecuteNonQueryAsync(System.String,System.Object)">
|
||||||
|
<summary>
|
||||||
|
在【主库】执行,ExecuteNonQueryAsync("delete from user where age > @age", new { age = 25 })
|
||||||
|
</summary>
|
||||||
|
<param name="cmdText"></param>
|
||||||
|
<param name="parms"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:FreeSql.IAdo.ExecuteScalarAsync(System.Data.CommandType,System.String,System.Data.Common.DbParameter[])">
|
||||||
|
<summary>
|
||||||
|
在【主库】执行
|
||||||
|
</summary>
|
||||||
|
<param name="cmdType"></param>
|
||||||
|
<param name="cmdText"></param>
|
||||||
|
<param name="cmdParms"></param>
|
||||||
|
</member>
|
||||||
|
<member name="M:FreeSql.IAdo.ExecuteScalarAsync(System.String,System.Object)">
|
||||||
|
<summary>
|
||||||
|
在【主库】执行,ExecuteScalarAsync("select 1 from user where age > @age", new { age = 25 })
|
||||||
|
</summary>
|
||||||
|
<param name="cmdText"></param>
|
||||||
|
<param name="parms"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:FreeSql.IAdo.QueryAsync``1(System.Data.CommandType,System.String,System.Data.Common.DbParameter[])">
|
||||||
|
<summary>
|
||||||
|
执行SQL返回对象集合,QueryAsync<User>("select * from user where age > @age", new SqlParameter { ParameterName = "age", Value = 25 })
|
||||||
|
</summary>
|
||||||
|
<typeparam name="T"></typeparam>
|
||||||
|
<param name="cmdType"></param>
|
||||||
|
<param name="cmdText"></param>
|
||||||
|
<param name="cmdParms"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:FreeSql.IAdo.QueryAsync``1(System.String,System.Object)">
|
||||||
|
<summary>
|
||||||
|
执行SQL返回对象集合,QueryAsync<User>("select * from user where age > @age", new { age = 25 })
|
||||||
|
</summary>
|
||||||
|
<typeparam name="T"></typeparam>
|
||||||
|
<param name="cmdText"></param>
|
||||||
|
<param name="parms"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:FreeSql.IAdo.QueryAsync``2(System.Data.CommandType,System.String,System.Data.Common.DbParameter[])">
|
||||||
|
<summary>
|
||||||
|
执行SQL返回对象集合,Query<User>("select * from user where age > @age; select * from address", new SqlParameter { ParameterName = "age", Value = 25 })
|
||||||
|
</summary>
|
||||||
|
<typeparam name="T1"></typeparam>
|
||||||
|
<param name="cmdType"></param>
|
||||||
|
<param name="cmdText"></param>
|
||||||
|
<param name="cmdParms"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:FreeSql.IAdo.QueryAsync``2(System.String,System.Object)">
|
||||||
|
<summary>
|
||||||
|
执行SQL返回对象集合,Query<User>("select * from user where age > @age; select * from address", new { age = 25 })
|
||||||
|
</summary>
|
||||||
|
<typeparam name="T1"></typeparam>
|
||||||
|
<param name="cmdText"></param>
|
||||||
|
<param name="parms"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="P:FreeSql.IAop.ParseExpression">
|
<member name="P:FreeSql.IAop.ParseExpression">
|
||||||
<summary>
|
<summary>
|
||||||
可自定义解析表达式
|
可自定义解析表达式
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Data;
|
||||||
using System.Data.Common;
|
using System.Data.Common;
|
||||||
using System.Linq.Expressions;
|
using System.Linq.Expressions;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
@ -115,6 +116,15 @@ namespace FreeSql
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
List<T1> ExecuteInserted();
|
List<T1> ExecuteInserted();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 返回 DataTable 以便做 BulkCopy 数据做准备<para></para>
|
||||||
|
/// 此方法会处理:<para></para>
|
||||||
|
/// 类型、表名、字段名映射<para></para>
|
||||||
|
/// IgnoreColumns、InsertColumns
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
DataTable ToDataTable();
|
||||||
|
|
||||||
#if net40
|
#if net40
|
||||||
#else
|
#else
|
||||||
Task<int> ExecuteAffrowsAsync();
|
Task<int> ExecuteAffrowsAsync();
|
||||||
|
@ -464,6 +464,31 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
_params = specialParams.ToArray();
|
_params = specialParams.ToArray();
|
||||||
return sb.ToString();
|
return sb.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public DataTable ToDataTable()
|
||||||
|
{
|
||||||
|
var dt = new DataTable();
|
||||||
|
dt.TableName = TableRuleInvoke();
|
||||||
|
foreach (var col in _table.ColumnsByPosition)
|
||||||
|
{
|
||||||
|
if (col.Attribute.IsIdentity && _insertIdentity == false) continue;
|
||||||
|
if (col.Attribute.IsIdentity == false && _ignore.ContainsKey(col.Attribute.Name)) continue;
|
||||||
|
dt.Columns.Add(col.Attribute.Name, col.Attribute.MapType);
|
||||||
|
}
|
||||||
|
foreach (var d in _source)
|
||||||
|
{
|
||||||
|
var row = new object[dt.Columns.Count];
|
||||||
|
var rowIndex = 0;
|
||||||
|
foreach (var col in _table.ColumnsByPosition)
|
||||||
|
{
|
||||||
|
if (col.Attribute.IsIdentity && _insertIdentity == false) continue;
|
||||||
|
if (col.Attribute.IsIdentity == false && _ignore.ContainsKey(col.Attribute.Name)) continue;
|
||||||
|
row[rowIndex++] = col.GetMapValue(d);
|
||||||
|
}
|
||||||
|
dt.Rows.Add(row);
|
||||||
|
}
|
||||||
|
return dt;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user