diff --git a/Extensions/FreeSql.Extensions.Linq/FreeSqlExtensionsLinq.cs b/Extensions/FreeSql.Extensions.Linq/FreeSqlExtensionsLinq.cs
index 92d9aefa..45920717 100644
--- a/Extensions/FreeSql.Extensions.Linq/FreeSqlExtensionsLinq.cs
+++ b/Extensions/FreeSql.Extensions.Linq/FreeSqlExtensionsLinq.cs
@@ -40,7 +40,7 @@ public static class FreeSqlExtensionsLinqSql
///
/// 【linq to sql】专用扩展方法,不建议直接使用
///
- public static ISelect Select(this ISelect that, Expression> select) where T1 : class where TReturn : class
+ public static ISelect Select(this ISelect that, Expression> select)
{
var s1p = that as Select1Provider;
if (typeof(TReturn) == typeof(T1)) return that as ISelect;
@@ -48,7 +48,7 @@ public static class FreeSqlExtensionsLinqSql
s1p._selectExpression = select.Body;
if (s1p._orm.CodeFirst.IsAutoSyncStructure)
(s1p._orm.CodeFirst as CodeFirstProvider)._dicSycedTryAdd(typeof(TReturn)); //._dicSyced.TryAdd(typeof(TReturn), true);
- var ret = s1p._orm.Select() as Select1Provider;
+ var ret = (s1p._orm as BaseDbProvider).CreateSelectProvider(null) as Select1Provider;
Select0Provider.CopyData(s1p, ret, null);
return ret;
}
diff --git a/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs b/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs
index ff52cea6..626486b4 100644
--- a/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs
+++ b/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs
@@ -244,6 +244,10 @@ namespace FreeSql.Tests
Assert.Throws(() => g.sqlite.Update().SetSource(new testUpdateNonePk()).ExecuteAffrows());
g.sqlite.Insert(new testInsertNullable()).NoneParameter().ExecuteAffrows();
+
+
+ g.sqlite.Select().Select(a => a.Id).ToList();
+
var ddlsql = g.sqlite.CodeFirst.GetComparisonDDLStatements(typeof(testInsertNullable), "tb123123");
Assert.Equal(@"CREATE TABLE IF NOT EXISTS ""main"".""tb123123"" (
""Id"" INTEGER PRIMARY KEY AUTOINCREMENT,
diff --git a/FreeSql/Internal/CommonProvider/BaseDbProvider.cs b/FreeSql/Internal/CommonProvider/BaseDbProvider.cs
new file mode 100644
index 00000000..69077daa
--- /dev/null
+++ b/FreeSql/Internal/CommonProvider/BaseDbProvider.cs
@@ -0,0 +1,43 @@
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Text;
+
+namespace FreeSql.Internal.CommonProvider
+{
+ public abstract partial class BaseDbProvider : IFreeSql
+ {
+ public abstract ISelect CreateSelectProvider(object dywhere);
+ public abstract IInsert CreateInsertProvider() where T1 : class;
+ public abstract IUpdate CreateUpdateProvider(object dywhere);
+ public abstract IDelete CreateDeleteProvider(object dywhere);
+ public abstract IInsertOrUpdate CreateInsertOrUpdateProvider() where T1 : class;
+
+ public ISelect Select() where T1 : class => CreateSelectProvider(null);
+ public ISelect Select(object dywhere) where T1 : class => CreateSelectProvider(dywhere);
+ public IInsert Insert() where T1 : class => CreateInsertProvider();
+ public IInsert Insert(T1 source) where T1 : class => this.Insert().AppendData(source);
+ public IInsert Insert(T1[] source) where T1 : class => this.Insert().AppendData(source);
+ public IInsert Insert(List source) where T1 : class => this.Insert().AppendData(source);
+ public IInsert Insert(IEnumerable source) where T1 : class => this.Insert().AppendData(source);
+ public IUpdate Update() where T1 : class => CreateUpdateProvider(null);
+ public IUpdate Update(object dywhere) where T1 : class => CreateUpdateProvider(dywhere);
+ public IDelete Delete() where T1 : class => CreateDeleteProvider(null);
+ public IDelete Delete(object dywhere) where T1 : class => CreateDeleteProvider(dywhere);
+ public IInsertOrUpdate InsertOrUpdate() where T1 : class => CreateInsertOrUpdateProvider();
+
+ public IAdo Ado { get; protected set; }
+ public IAop Aop { get; protected set; }
+ public ICodeFirst CodeFirst { get; protected set; }
+ public virtual IDbFirst DbFirst { get; protected set; }
+
+ public CommonUtils InternalCommonUtils { get; protected set; }
+ public CommonExpression InternalCommonExpression { get; protected set; }
+
+ public void Transaction(Action handler) => Ado.Transaction(handler);
+ public void Transaction(IsolationLevel isolationLevel, Action handler) => Ado.Transaction(isolationLevel, handler);
+
+ public GlobalFilter GlobalFilter { get; } = new GlobalFilter();
+ public abstract void Dispose();
+ }
+}
diff --git a/FreeSql/Internal/CommonProvider/DeleteProvider.cs b/FreeSql/Internal/CommonProvider/DeleteProvider.cs
index 774812cc..69eb0b82 100644
--- a/FreeSql/Internal/CommonProvider/DeleteProvider.cs
+++ b/FreeSql/Internal/CommonProvider/DeleteProvider.cs
@@ -11,7 +11,7 @@ using System.Threading.Tasks;
namespace FreeSql.Internal.CommonProvider
{
- public abstract partial class DeleteProvider : IDelete where T1 : class
+ public abstract partial class DeleteProvider : IDelete
{
public IFreeSql _orm;
public CommonUtils _commonUtils;
diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs
index 3236d246..ca3712fd 100644
--- a/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs
+++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs
@@ -165,7 +165,7 @@ namespace FreeSql.Internal.CommonProvider
}
}
- public abstract partial class Select0Provider : Select0Provider, ISelect0 where TSelect : class where T1 : class
+ public abstract partial class Select0Provider : Select0Provider, ISelect0 where TSelect : class
{
public Select0Provider(IFreeSql orm, CommonUtils commonUtils, CommonExpression commonExpression, object dywhere)
{
@@ -371,7 +371,7 @@ namespace FreeSql.Internal.CommonProvider
public IDelete ToDelete()
{
if (_tables[0].Table.Primarys.Any() == false) throw new Exception($"ToDelete 功能要求实体类 {_tables[0].Table.CsName} 必须有主键");
- var del = _orm.Delete() as DeleteProvider;
+ var del = (_orm as BaseDbProvider).CreateDeleteProvider(null) as DeleteProvider;
if (_tables[0].Table.Type != typeof(T1)) del.AsType(_tables[0].Table.Type);
if (_params.Any()) del._params = new List(_params.ToArray());
if (_whereGlobalFilter.Any()) del._whereGlobalFilter = new List(_whereGlobalFilter.ToArray());
@@ -399,7 +399,7 @@ namespace FreeSql.Internal.CommonProvider
public IUpdate ToUpdate()
{
if (_tables[0].Table.Primarys.Any() == false) throw new Exception($"ToUpdate 功能要求实体类 {_tables[0].Table.CsName} 必须有主键");
- var upd = _orm.Update() as UpdateProvider;
+ var upd = (_orm as BaseDbProvider).CreateUpdateProvider(null) as UpdateProvider;
if (_tables[0].Table.Type != typeof(T1)) upd.AsType(_tables[0].Table.Type);
if (_params.Any()) upd._params = new List(_params.ToArray());
if (_whereGlobalFilter.Any()) upd._whereGlobalFilter = new List(_whereGlobalFilter.ToArray());
diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select10Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select10Provider.cs
index 0f7bbb0c..cb17d03d 100644
--- a/FreeSql/Internal/CommonProvider/SelectProvider/Select10Provider.cs
+++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select10Provider.cs
@@ -10,7 +10,6 @@ namespace FreeSql.Internal.CommonProvider
{
public abstract class Select10Provider : Select0Provider, T1>, ISelect
- where T1 : class
where T2 : class
where T3 : class
where T4 : class
diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select11Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select11Provider.cs
index d63ad2c4..3613cf42 100644
--- a/FreeSql/Internal/CommonProvider/SelectProvider/Select11Provider.cs
+++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select11Provider.cs
@@ -10,7 +10,6 @@ namespace FreeSql.Internal.CommonProvider
{
public abstract class Select11Provider : Select0Provider, T1>, ISelect
- where T1 : class
where T2 : class
where T3 : class
where T4 : class
diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select12Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select12Provider.cs
index 3f0ee2be..98077570 100644
--- a/FreeSql/Internal/CommonProvider/SelectProvider/Select12Provider.cs
+++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select12Provider.cs
@@ -10,7 +10,6 @@ namespace FreeSql.Internal.CommonProvider
{
public abstract class Select12Provider : Select0Provider, T1>, ISelect
- where T1 : class
where T2 : class
where T3 : class
where T4 : class
diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select13Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select13Provider.cs
index 733d3752..88c63d3f 100644
--- a/FreeSql/Internal/CommonProvider/SelectProvider/Select13Provider.cs
+++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select13Provider.cs
@@ -10,7 +10,6 @@ namespace FreeSql.Internal.CommonProvider
{
public abstract class Select13Provider : Select0Provider, T1>, ISelect
- where T1 : class
where T2 : class
where T3 : class
where T4 : class
diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select14Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select14Provider.cs
index b7444508..c027caf6 100644
--- a/FreeSql/Internal/CommonProvider/SelectProvider/Select14Provider.cs
+++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select14Provider.cs
@@ -10,7 +10,6 @@ namespace FreeSql.Internal.CommonProvider
{
public abstract class Select14Provider : Select0Provider, T1>, ISelect
- where T1 : class
where T2 : class
where T3 : class
where T4 : class
diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select15Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select15Provider.cs
index e97afd94..61ee7e0b 100644
--- a/FreeSql/Internal/CommonProvider/SelectProvider/Select15Provider.cs
+++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select15Provider.cs
@@ -10,7 +10,6 @@ namespace FreeSql.Internal.CommonProvider
{
public abstract class Select15Provider : Select0Provider, T1>, ISelect
- where T1 : class
where T2 : class
where T3 : class
where T4 : class
diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select16Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select16Provider.cs
index a1747eb2..f439e26d 100644
--- a/FreeSql/Internal/CommonProvider/SelectProvider/Select16Provider.cs
+++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select16Provider.cs
@@ -10,7 +10,6 @@ namespace FreeSql.Internal.CommonProvider
{
public abstract class Select16Provider : Select0Provider, T1>, ISelect
- where T1 : class
where T2 : class
where T3 : class
where T4 : class
diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs
index d7bba456..cc8e1e7a 100644
--- a/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs
+++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs
@@ -18,7 +18,6 @@ namespace FreeSql.Internal.CommonProvider
{
public abstract class Select1Provider : Select0Provider, T1>, ISelect
- where T1 : class
{
public Select1Provider(IFreeSql orm, CommonUtils commonUtils, CommonExpression commonExpression, object dywhere) : base(orm, commonUtils, commonExpression, dywhere)
{
diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select2Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select2Provider.cs
index 380fb784..08d0d55c 100644
--- a/FreeSql/Internal/CommonProvider/SelectProvider/Select2Provider.cs
+++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select2Provider.cs
@@ -10,7 +10,6 @@ namespace FreeSql.Internal.CommonProvider
{
public abstract class Select2Provider : Select0Provider, T1>, ISelect
- where T1 : class
where T2 : class
{
diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select3Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select3Provider.cs
index 5e0d9d7d..5d214f83 100644
--- a/FreeSql/Internal/CommonProvider/SelectProvider/Select3Provider.cs
+++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select3Provider.cs
@@ -10,7 +10,6 @@ namespace FreeSql.Internal.CommonProvider
{
public abstract class Select3Provider : Select0Provider, T1>, ISelect
- where T1 : class
where T2 : class
where T3 : class
{
diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select4Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select4Provider.cs
index 94726b48..b2d451fb 100644
--- a/FreeSql/Internal/CommonProvider/SelectProvider/Select4Provider.cs
+++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select4Provider.cs
@@ -10,7 +10,6 @@ namespace FreeSql.Internal.CommonProvider
{
public abstract class Select4Provider : Select0Provider, T1>, ISelect
- where T1 : class
where T2 : class
where T3 : class
where T4 : class
diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select5Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select5Provider.cs
index 7de632c5..0e29039c 100644
--- a/FreeSql/Internal/CommonProvider/SelectProvider/Select5Provider.cs
+++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select5Provider.cs
@@ -10,7 +10,6 @@ namespace FreeSql.Internal.CommonProvider
{
public abstract class Select5Provider : Select0Provider, T1>, ISelect
- where T1 : class
where T2 : class
where T3 : class
where T4 : class
diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select6Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select6Provider.cs
index 1878e668..bbeb94ac 100644
--- a/FreeSql/Internal/CommonProvider/SelectProvider/Select6Provider.cs
+++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select6Provider.cs
@@ -10,7 +10,6 @@ namespace FreeSql.Internal.CommonProvider
{
public abstract class Select6Provider : Select0Provider, T1>, ISelect
- where T1 : class
where T2 : class
where T3 : class
where T4 : class
diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select7Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select7Provider.cs
index 29ea495e..3927f2af 100644
--- a/FreeSql/Internal/CommonProvider/SelectProvider/Select7Provider.cs
+++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select7Provider.cs
@@ -10,7 +10,6 @@ namespace FreeSql.Internal.CommonProvider
{
public abstract class Select7Provider : Select0Provider, T1>, ISelect
- where T1 : class
where T2 : class
where T3 : class
where T4 : class
diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select8Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select8Provider.cs
index 8d4be242..2ec77898 100644
--- a/FreeSql/Internal/CommonProvider/SelectProvider/Select8Provider.cs
+++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select8Provider.cs
@@ -10,7 +10,6 @@ namespace FreeSql.Internal.CommonProvider
{
public abstract class Select8Provider : Select0Provider, T1>, ISelect
- where T1 : class
where T2 : class
where T3 : class
where T4 : class
diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select9Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select9Provider.cs
index 8f1861ec..93c5f395 100644
--- a/FreeSql/Internal/CommonProvider/SelectProvider/Select9Provider.cs
+++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select9Provider.cs
@@ -10,7 +10,6 @@ namespace FreeSql.Internal.CommonProvider
{
public abstract class Select9Provider : Select0Provider, T1>, ISelect
- where T1 : class
where T2 : class
where T3 : class
where T4 : class
diff --git a/FreeSql/Internal/CommonProvider/UpdateProvider.cs b/FreeSql/Internal/CommonProvider/UpdateProvider.cs
index 6742062d..40720ec1 100644
--- a/FreeSql/Internal/CommonProvider/UpdateProvider.cs
+++ b/FreeSql/Internal/CommonProvider/UpdateProvider.cs
@@ -13,7 +13,7 @@ using System.Threading.Tasks;
namespace FreeSql.Internal.CommonProvider
{
- public abstract partial class UpdateProvider : IUpdate where T1 : class
+ public abstract partial class UpdateProvider : IUpdate
{
public IFreeSql _orm;
public CommonUtils _commonUtils;
diff --git a/Providers/FreeSql.Provider.Dameng/Curd/DamengDelete.cs b/Providers/FreeSql.Provider.Dameng/Curd/DamengDelete.cs
index 99141060..67c82634 100644
--- a/Providers/FreeSql.Provider.Dameng/Curd/DamengDelete.cs
+++ b/Providers/FreeSql.Provider.Dameng/Curd/DamengDelete.cs
@@ -8,7 +8,7 @@ using System.Threading.Tasks;
namespace FreeSql.Dameng.Curd
{
- class DamengDelete : Internal.CommonProvider.DeleteProvider where T1 : class
+ class DamengDelete : Internal.CommonProvider.DeleteProvider
{
public DamengDelete(IFreeSql orm, CommonUtils commonUtils, CommonExpression commonExpression, object dywhere)
: base(orm, commonUtils, commonExpression, dywhere)
diff --git a/Providers/FreeSql.Provider.Dameng/Curd/DamengSelect.cs b/Providers/FreeSql.Provider.Dameng/Curd/DamengSelect.cs
index de817e0e..b78215b1 100644
--- a/Providers/FreeSql.Provider.Dameng/Curd/DamengSelect.cs
+++ b/Providers/FreeSql.Provider.Dameng/Curd/DamengSelect.cs
@@ -9,7 +9,7 @@ using System.Text;
namespace FreeSql.Dameng.Curd
{
- class DamengSelect : FreeSql.Internal.CommonProvider.Select1Provider where T1 : class
+ class DamengSelect : FreeSql.Internal.CommonProvider.Select1Provider
{
internal static string ToSqlStatic(CommonUtils _commonUtils, CommonExpression _commonExpression, string _select, bool _distinct, string field, StringBuilder _join, StringBuilder _where, string _groupby, string _having, string _orderby, int _skip, int _limit, List _tables, List> tbUnions, Func _aliasRule, string _tosqlAppendContent, List _whereGlobalFilter, IFreeSql _orm)
@@ -143,78 +143,78 @@ namespace FreeSql.Dameng.Curd
public override ISelect From(Expression, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, ISelectFromExpression>> exp) { this.InternalFrom(exp); var ret = new DamengSelect(_orm, _commonUtils, _commonExpression, null); DamengSelect.CopyData(this, ret, exp?.Parameters); return ret; }
public override string ToSql(string field = null) => ToSqlStatic(_commonUtils, _commonExpression, _select, _distinct, field ?? this.GetAllFieldExpressionTreeLevel2().Field, _join, _where, _groupby, _having, _orderby, _skip, _limit, _tables, this.GetTableRuleUnions(), _aliasRule, _tosqlAppendContent, _whereGlobalFilter, _orm);
}
- class DamengSelect : FreeSql.Internal.CommonProvider.Select2Provider where T1 : class where T2 : class
+ class DamengSelect : FreeSql.Internal.CommonProvider.Select2Provider where T2 : class
{
public DamengSelect(IFreeSql orm, CommonUtils commonUtils, CommonExpression commonExpression, object dywhere) : base(orm, commonUtils, commonExpression, dywhere) { }
public override string ToSql(string field = null) => DamengSelect.ToSqlStatic(_commonUtils, _commonExpression, _select, _distinct, field ?? this.GetAllFieldExpressionTreeLevel2().Field, _join, _where, _groupby, _having, _orderby, _skip, _limit, _tables, this.GetTableRuleUnions(), _aliasRule, _tosqlAppendContent, _whereGlobalFilter, _orm);
}
- class DamengSelect : FreeSql.Internal.CommonProvider.Select3Provider where T1 : class where T2 : class where T3 : class
+ class DamengSelect : FreeSql.Internal.CommonProvider.Select3Provider where T2 : class where T3 : class
{
public DamengSelect(IFreeSql orm, CommonUtils commonUtils, CommonExpression commonExpression, object dywhere) : base(orm, commonUtils, commonExpression, dywhere) { }
public override string ToSql(string field = null) => DamengSelect.ToSqlStatic(_commonUtils, _commonExpression, _select, _distinct, field ?? this.GetAllFieldExpressionTreeLevel2().Field, _join, _where, _groupby, _having, _orderby, _skip, _limit, _tables, this.GetTableRuleUnions(), _aliasRule, _tosqlAppendContent, _whereGlobalFilter, _orm);
}
- class DamengSelect : FreeSql.Internal.CommonProvider.Select4Provider where T1 : class where T2 : class where T3 : class where T4 : class
+ class DamengSelect : FreeSql.Internal.CommonProvider.Select4Provider where T2 : class where T3 : class where T4 : class
{
public DamengSelect(IFreeSql orm, CommonUtils commonUtils, CommonExpression commonExpression, object dywhere) : base(orm, commonUtils, commonExpression, dywhere) { }
public override string ToSql(string field = null) => DamengSelect.ToSqlStatic(_commonUtils, _commonExpression, _select, _distinct, field ?? this.GetAllFieldExpressionTreeLevel2().Field, _join, _where, _groupby, _having, _orderby, _skip, _limit, _tables, this.GetTableRuleUnions(), _aliasRule, _tosqlAppendContent, _whereGlobalFilter, _orm);
}
- class DamengSelect : FreeSql.Internal.CommonProvider.Select5Provider where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class
+ class DamengSelect : FreeSql.Internal.CommonProvider.Select5Provider where T2 : class where T3 : class where T4 : class where T5 : class
{
public DamengSelect(IFreeSql orm, CommonUtils commonUtils, CommonExpression commonExpression, object dywhere) : base(orm, commonUtils, commonExpression, dywhere) { }
public override string ToSql(string field = null) => DamengSelect.ToSqlStatic(_commonUtils, _commonExpression, _select, _distinct, field ?? this.GetAllFieldExpressionTreeLevel2().Field, _join, _where, _groupby, _having, _orderby, _skip, _limit, _tables, this.GetTableRuleUnions(), _aliasRule, _tosqlAppendContent, _whereGlobalFilter, _orm);
}
- class DamengSelect : FreeSql.Internal.CommonProvider.Select6Provider where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class
+ class DamengSelect : FreeSql.Internal.CommonProvider.Select6Provider where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class
{
public DamengSelect(IFreeSql orm, CommonUtils commonUtils, CommonExpression commonExpression, object dywhere) : base(orm, commonUtils, commonExpression, dywhere) { }
public override string ToSql(string field = null) => DamengSelect.ToSqlStatic(_commonUtils, _commonExpression, _select, _distinct, field ?? this.GetAllFieldExpressionTreeLevel2().Field, _join, _where, _groupby, _having, _orderby, _skip, _limit, _tables, this.GetTableRuleUnions(), _aliasRule, _tosqlAppendContent, _whereGlobalFilter, _orm);
}
- class DamengSelect : FreeSql.Internal.CommonProvider.Select7Provider where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class
+ class DamengSelect : FreeSql.Internal.CommonProvider.Select7Provider where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class
{
public DamengSelect(IFreeSql orm, CommonUtils commonUtils, CommonExpression commonExpression, object dywhere) : base(orm, commonUtils, commonExpression, dywhere) { }
public override string ToSql(string field = null) => DamengSelect.ToSqlStatic(_commonUtils, _commonExpression, _select, _distinct, field ?? this.GetAllFieldExpressionTreeLevel2().Field, _join, _where, _groupby, _having, _orderby, _skip, _limit, _tables, this.GetTableRuleUnions(), _aliasRule, _tosqlAppendContent, _whereGlobalFilter, _orm);
}
- class DamengSelect : FreeSql.Internal.CommonProvider.Select8Provider where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class where T8 : class
+ class DamengSelect : FreeSql.Internal.CommonProvider.Select8Provider where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class where T8 : class
{
public DamengSelect(IFreeSql orm, CommonUtils commonUtils, CommonExpression commonExpression, object dywhere) : base(orm, commonUtils, commonExpression, dywhere) { }
public override string ToSql(string field = null) => DamengSelect.ToSqlStatic(_commonUtils, _commonExpression, _select, _distinct, field ?? this.GetAllFieldExpressionTreeLevel2().Field, _join, _where, _groupby, _having, _orderby, _skip, _limit, _tables, this.GetTableRuleUnions(), _aliasRule, _tosqlAppendContent, _whereGlobalFilter, _orm);
}
- class DamengSelect : FreeSql.Internal.CommonProvider.Select9Provider where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class where T8 : class where T9 : class
+ class DamengSelect : FreeSql.Internal.CommonProvider.Select9Provider where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class where T8 : class where T9 : class
{
public DamengSelect(IFreeSql orm, CommonUtils commonUtils, CommonExpression commonExpression, object dywhere) : base(orm, commonUtils, commonExpression, dywhere) { }
public override string ToSql(string field = null) => DamengSelect.ToSqlStatic(_commonUtils, _commonExpression, _select, _distinct, field ?? this.GetAllFieldExpressionTreeLevel2().Field, _join, _where, _groupby, _having, _orderby, _skip, _limit, _tables, this.GetTableRuleUnions(), _aliasRule, _tosqlAppendContent, _whereGlobalFilter, _orm);
}
- class DamengSelect : FreeSql.Internal.CommonProvider.Select10Provider where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class where T8 : class where T9 : class where T10 : class
+ class DamengSelect : FreeSql.Internal.CommonProvider.Select10Provider where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class where T8 : class where T9 : class where T10 : class
{
public DamengSelect(IFreeSql orm, CommonUtils commonUtils, CommonExpression commonExpression, object dywhere) : base(orm, commonUtils, commonExpression, dywhere) { }
public override string ToSql(string field = null) => DamengSelect.ToSqlStatic(_commonUtils, _commonExpression, _select, _distinct, field ?? this.GetAllFieldExpressionTreeLevel2().Field, _join, _where, _groupby, _having, _orderby, _skip, _limit, _tables, this.GetTableRuleUnions(), _aliasRule, _tosqlAppendContent, _whereGlobalFilter, _orm);
}
- class DamengSelect : FreeSql.Internal.CommonProvider.Select11Provider where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class where T8 : class where T9 : class where T10 : class where T11 : class
+ class DamengSelect : FreeSql.Internal.CommonProvider.Select11Provider where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class where T8 : class where T9 : class where T10 : class where T11 : class
{
public DamengSelect(IFreeSql orm, CommonUtils commonUtils, CommonExpression commonExpression, object dywhere) : base(orm, commonUtils, commonExpression, dywhere) { }
public override string ToSql(string field = null) => DamengSelect.ToSqlStatic(_commonUtils, _commonExpression, _select, _distinct, field ?? this.GetAllFieldExpressionTreeLevel2().Field, _join, _where, _groupby, _having, _orderby, _skip, _limit, _tables, this.GetTableRuleUnions(), _aliasRule, _tosqlAppendContent, _whereGlobalFilter, _orm);
}
- class DamengSelect : FreeSql.Internal.CommonProvider.Select12Provider where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class where T8 : class where T9 : class where T10 : class where T11 : class where T12 : class
+ class DamengSelect : FreeSql.Internal.CommonProvider.Select12Provider where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class where T8 : class where T9 : class where T10 : class where T11 : class where T12 : class
{
public DamengSelect(IFreeSql orm, CommonUtils commonUtils, CommonExpression commonExpression, object dywhere) : base(orm, commonUtils, commonExpression, dywhere) { }
public override string ToSql(string field = null) => DamengSelect.ToSqlStatic(_commonUtils, _commonExpression, _select, _distinct, field ?? this.GetAllFieldExpressionTreeLevel2().Field, _join, _where, _groupby, _having, _orderby, _skip, _limit, _tables, this.GetTableRuleUnions(), _aliasRule, _tosqlAppendContent, _whereGlobalFilter, _orm);
}
- class DamengSelect : FreeSql.Internal.CommonProvider.Select13Provider where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class where T8 : class where T9 : class where T10 : class where T11 : class where T12 : class where T13 : class
+ class DamengSelect : FreeSql.Internal.CommonProvider.Select13Provider where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class where T8 : class where T9 : class where T10 : class where T11 : class where T12 : class where T13 : class
{
public DamengSelect(IFreeSql orm, CommonUtils commonUtils, CommonExpression commonExpression, object dywhere) : base(orm, commonUtils, commonExpression, dywhere) { }
public override string ToSql(string field = null) => DamengSelect.ToSqlStatic(_commonUtils, _commonExpression, _select, _distinct, field ?? this.GetAllFieldExpressionTreeLevel2().Field, _join, _where, _groupby, _having, _orderby, _skip, _limit, _tables, this.GetTableRuleUnions(), _aliasRule, _tosqlAppendContent, _whereGlobalFilter, _orm);
}
- class DamengSelect : FreeSql.Internal.CommonProvider.Select14Provider where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class where T8 : class where T9 : class where T10 : class where T11 : class where T12 : class where T13 : class where T14 : class
+ class DamengSelect : FreeSql.Internal.CommonProvider.Select14Provider where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class where T8 : class where T9 : class where T10 : class where T11 : class where T12 : class where T13 : class where T14 : class
{
public DamengSelect(IFreeSql orm, CommonUtils commonUtils, CommonExpression commonExpression, object dywhere) : base(orm, commonUtils, commonExpression, dywhere) { }
public override string ToSql(string field = null) => DamengSelect.ToSqlStatic(_commonUtils, _commonExpression, _select, _distinct, field ?? this.GetAllFieldExpressionTreeLevel2().Field, _join, _where, _groupby, _having, _orderby, _skip, _limit, _tables, this.GetTableRuleUnions(), _aliasRule, _tosqlAppendContent, _whereGlobalFilter, _orm);
}
- class DamengSelect : FreeSql.Internal.CommonProvider.Select15Provider where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class where T8 : class where T9 : class where T10 : class where T11 : class where T12 : class where T13 : class where T14 : class where T15 : class
+ class DamengSelect : FreeSql.Internal.CommonProvider.Select15Provider where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class where T8 : class where T9 : class where T10 : class where T11 : class where T12 : class where T13 : class where T14 : class where T15 : class
{
public DamengSelect(IFreeSql orm, CommonUtils commonUtils, CommonExpression commonExpression, object dywhere) : base(orm, commonUtils, commonExpression, dywhere) { }
public override string ToSql(string field = null) => DamengSelect.ToSqlStatic(_commonUtils, _commonExpression, _select, _distinct, field ?? this.GetAllFieldExpressionTreeLevel2().Field, _join, _where, _groupby, _having, _orderby, _skip, _limit, _tables, this.GetTableRuleUnions(), _aliasRule, _tosqlAppendContent, _whereGlobalFilter, _orm);
}
- class DamengSelect : FreeSql.Internal.CommonProvider.Select16Provider where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class where T8 : class where T9 : class where T10 : class where T11 : class where T12 : class where T13 : class where T14 : class where T15 : class where T16 : class
+ class DamengSelect : FreeSql.Internal.CommonProvider.Select16Provider where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class where T8 : class where T9 : class where T10 : class where T11 : class where T12 : class where T13 : class where T14 : class where T15 : class where T16 : class
{
public DamengSelect(IFreeSql orm, CommonUtils commonUtils, CommonExpression commonExpression, object dywhere) : base(orm, commonUtils, commonExpression, dywhere) { }
public override string ToSql(string field = null) => DamengSelect.ToSqlStatic(_commonUtils, _commonExpression, _select, _distinct, field ?? this.GetAllFieldExpressionTreeLevel2().Field, _join, _where, _groupby, _having, _orderby, _skip, _limit, _tables, this.GetTableRuleUnions(), _aliasRule, _tosqlAppendContent, _whereGlobalFilter, _orm);
diff --git a/Providers/FreeSql.Provider.Dameng/Curd/DamengUpdate.cs b/Providers/FreeSql.Provider.Dameng/Curd/DamengUpdate.cs
index 9fa70101..c4b88741 100644
--- a/Providers/FreeSql.Provider.Dameng/Curd/DamengUpdate.cs
+++ b/Providers/FreeSql.Provider.Dameng/Curd/DamengUpdate.cs
@@ -9,7 +9,7 @@ using System.Threading.Tasks;
namespace FreeSql.Dameng.Curd
{
- class DamengUpdate : Internal.CommonProvider.UpdateProvider where T1 : class
+ class DamengUpdate : Internal.CommonProvider.UpdateProvider
{
public DamengUpdate(IFreeSql orm, CommonUtils commonUtils, CommonExpression commonExpression, object dywhere)
diff --git a/Providers/FreeSql.Provider.Dameng/DamengProvider.cs b/Providers/FreeSql.Provider.Dameng/DamengProvider.cs
index 64b83116..eae036aa 100644
--- a/Providers/FreeSql.Provider.Dameng/DamengProvider.cs
+++ b/Providers/FreeSql.Provider.Dameng/DamengProvider.cs
@@ -1,35 +1,20 @@
using FreeSql.Dameng.Curd;
-using FreeSql.Internal;
using FreeSql.Internal.CommonProvider;
using System;
-using System.Collections.Generic;
-using System.Data;
using System.Data.Common;
using System.Threading;
namespace FreeSql.Dameng
{
- public class DamengProvider : IFreeSql
+ public class DamengProvider : BaseDbProvider, IFreeSql
{
+ public override ISelect CreateSelectProvider(object dywhere) => new DamengSelect(this, this.InternalCommonUtils, this.InternalCommonExpression, dywhere);
+ public override IInsert CreateInsertProvider() => new DamengInsert(this, this.InternalCommonUtils, this.InternalCommonExpression);
+ public override IUpdate CreateUpdateProvider(object dywhere) => new DamengUpdate(this, this.InternalCommonUtils, this.InternalCommonExpression, dywhere);
+ public override IDelete CreateDeleteProvider(object dywhere) => new DamengDelete(this, this.InternalCommonUtils, this.InternalCommonExpression, dywhere);
+ public override IInsertOrUpdate CreateInsertOrUpdateProvider() => new DamengInsertOrUpdate