## v0.4.13

- 优化 MySql 日期类型精确至毫秒;
- 增加 Distinct 查询前去重数据;
This commit is contained in:
28810
2019-04-12 20:02:58 +08:00
parent dda9eddbcb
commit 2714ff360d
23 changed files with 531 additions and 79 deletions

View File

@ -30,6 +30,7 @@ namespace FreeSql.Internal.CommonProvider {
protected DbTransaction _transaction;
protected DbConnection _connection;
protected Action<object> _trackToList;
protected bool _distinct;
internal static void CopyData(Select0Provider<TSelect, T1> from, object to, ReadOnlyCollection<ParameterExpression> lambParms) {
var toType = to?.GetType();
@ -64,6 +65,7 @@ namespace FreeSql.Internal.CommonProvider {
toType.GetField("_transaction", BindingFlags.Instance | BindingFlags.NonPublic)?.SetValue(to, from._transaction);
toType.GetField("_connection", BindingFlags.Instance | BindingFlags.NonPublic)?.SetValue(to, from._connection);
toType.GetField("_trackToList", BindingFlags.Instance | BindingFlags.NonPublic)?.SetValue(to, from._trackToList);
toType.GetField("_distinct", BindingFlags.Instance | BindingFlags.NonPublic)?.SetValue(to, from._distinct);
}
public Select0Provider(IFreeSql orm, CommonUtils commonUtils, CommonExpression commonExpression, object dywhere) {
@ -204,6 +206,11 @@ namespace FreeSql.Internal.CommonProvider {
}
public TSelect Take(int limit) => this.Limit(limit) as TSelect;
public TSelect Distinct() {
_distinct = true;
return this as TSelect;
}
public DataTable ToDataTable(string field = null) {
var sql = this.ToSql(field);
if (_cache.seconds > 0 && string.IsNullOrEmpty(_cache.key)) _cache.key = sql;