mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-20 04:48:16 +08:00
- 增加 WithMemory 基于内存查询;
This commit is contained in:
@ -2627,6 +2627,13 @@
|
||||
<param name="parms">参数</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.ISelect`1.WithMemory(System.Collections.Generic.IEnumerable{`0})">
|
||||
<summary>
|
||||
实现 select .. from ( select .. UNION ALL select .. ) a 这样的功能(基于内存数据)
|
||||
</summary>
|
||||
<param name="source">内存数据</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.ISelect`1.WithTempQuery``1(System.Linq.Expressions.Expression{System.Func{`0,``0}})">
|
||||
<summary>
|
||||
嵌套查询 select * from ( select ... from table ... ) a
|
||||
|
@ -369,6 +369,12 @@ namespace FreeSql
|
||||
/// <param name="parms">参数</param>
|
||||
/// <returns></returns>
|
||||
ISelect<T1> WithSql(string sql, object parms = null);
|
||||
/// <summary>
|
||||
/// 实现 select .. from ( select .. UNION ALL select .. ) a 这样的功能(基于内存数据)
|
||||
/// </summary>
|
||||
/// <param name="source">内存数据</param>
|
||||
/// <returns></returns>
|
||||
ISelect<T1> WithMemory(IEnumerable<T1> source);
|
||||
|
||||
/// <summary>
|
||||
/// 嵌套查询 select * from ( select ... from table ... ) a
|
||||
|
@ -437,6 +437,15 @@ namespace FreeSql.Internal.CommonProvider
|
||||
if (parms != null) _params.AddRange(_commonUtils.GetDbParamtersByObject(sql, parms));
|
||||
return this;
|
||||
}
|
||||
public ISelect<T1> WithMemory(IEnumerable<T1> source)
|
||||
{
|
||||
var sb = new StringBuilder();
|
||||
(_orm.InsertOrUpdate<object>().AsType(_tables[0].Table.Type) as InsertOrUpdateProvider<object>)
|
||||
.WriteSourceSelectUnionAll(source.Select(a => (object)a).ToList(), sb, _params);
|
||||
|
||||
try { return WithSql(sb.ToString()); }
|
||||
finally { sb.Clear(); }
|
||||
}
|
||||
|
||||
public ISelect<TDto> WithTempQuery<TDto>(Expression<Func<T1, TDto>> selector) => InternalWithTempQuery<TDto>(selector);
|
||||
|
||||
|
Reference in New Issue
Block a user