diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml
index 132d875e..4854f49c 100644
--- a/FreeSql.DbContext/FreeSql.DbContext.xml
+++ b/FreeSql.DbContext/FreeSql.DbContext.xml
@@ -125,6 +125,13 @@
清空状态数据
+
+
+ 根据 lambda 条件删除数据
+
+
+
+
添加
@@ -479,5 +486,14 @@
+
+
+ 批量注入 Repository,可以参考代码自行调整
+
+
+
+
+
+
diff --git a/FreeSql/Extensions/FreeSqlGlobalExtensions.cs b/FreeSql/Extensions/FreeSqlGlobalExtensions.cs
index ae4c5929..9537f680 100644
--- a/FreeSql/Extensions/FreeSqlGlobalExtensions.cs
+++ b/FreeSql/Extensions/FreeSqlGlobalExtensions.cs
@@ -128,10 +128,14 @@ public static partial class FreeSqlGlobalExtensions
{
if (that == null) return null;
if (that == typeof(string)) return default(string);
+ if (that == typeof(Guid)) return default(Guid);
if (that.IsArray) return Array.CreateInstance(that, 0);
var ctorParms = that.InternalGetTypeConstructor0OrFirst(false)?.GetParameters();
if (ctorParms == null || ctorParms.Any() == false) return Activator.CreateInstance(that, true);
- return Activator.CreateInstance(that, ctorParms.Select(a => a.ParameterType.IsInterface || a.ParameterType.IsAbstract || a.ParameterType == typeof(string) ? null : Activator.CreateInstance(a.ParameterType, null)).ToArray());
+ return Activator.CreateInstance(that, ctorParms
+ .Select(a => a.ParameterType.IsInterface || a.ParameterType.IsAbstract || a.ParameterType == typeof(string) || a.ParameterType.IsArray ?
+ null :
+ Activator.CreateInstance(a.ParameterType, null)).ToArray());
}
internal static NewExpression InternalNewExpression(this Type that)
{
diff --git a/FreeSql/FreeSql.xml b/FreeSql/FreeSql.xml
index 1e5c8e71..eb7bd92e 100644
--- a/FreeSql/FreeSql.xml
+++ b/FreeSql/FreeSql.xml
@@ -824,7 +824,7 @@
- 传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
+ 传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合
是否标识为NOT
@@ -1662,7 +1662,7 @@
- 传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
+ 传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合
是否标识为NOT
@@ -2077,7 +2077,7 @@
- 传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
+ 传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合
是否标识为NOT
@@ -3456,7 +3456,7 @@
- 修改数据,传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
+ 修改数据,传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合
@@ -3471,7 +3471,7 @@
- 查询数据,传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
+ 查询数据,传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合
@@ -3486,7 +3486,7 @@
- 删除数据,传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
+ 删除数据,传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合
@@ -3540,7 +3540,7 @@
-
+
@@ -3619,7 +3619,7 @@
- 修改数据,传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
+ 修改数据,传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合
@@ -3634,7 +3634,7 @@
- 查询数据,传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
+ 查询数据,传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合
@@ -3649,7 +3649,7 @@
- 删除数据,传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
+ 删除数据,传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合
diff --git a/FreeSql/Interface/Curd/IDelete.cs b/FreeSql/Interface/Curd/IDelete.cs
index 0cf9f699..deab6936 100644
--- a/FreeSql/Interface/Curd/IDelete.cs
+++ b/FreeSql/Interface/Curd/IDelete.cs
@@ -49,7 +49,7 @@ namespace FreeSql
///
IDelete Where(IEnumerable items);
///
- /// 传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
+ /// 传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
///
/// 主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合
/// 是否标识为NOT
diff --git a/FreeSql/Interface/Curd/ISelect/ISelect1.cs b/FreeSql/Interface/Curd/ISelect/ISelect1.cs
index 859b48aa..acf1bcf3 100644
--- a/FreeSql/Interface/Curd/ISelect/ISelect1.cs
+++ b/FreeSql/Interface/Curd/ISelect/ISelect1.cs
@@ -292,7 +292,7 @@ namespace FreeSql
///
ISelect Where(Expression> exp) where T2 : class where T3 : class where T4 : class where T5 : class;
///
- /// 传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
+ /// 传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
///
/// 主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合
/// 是否标识为NOT
diff --git a/FreeSql/Interface/Curd/IUpdate.cs b/FreeSql/Interface/Curd/IUpdate.cs
index 6922dadd..41a8758b 100644
--- a/FreeSql/Interface/Curd/IUpdate.cs
+++ b/FreeSql/Interface/Curd/IUpdate.cs
@@ -147,7 +147,7 @@ namespace FreeSql
///
IUpdate Where(IEnumerable items);
///
- /// 传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
+ /// 传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
///
/// 主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合
/// 是否标识为NOT
diff --git a/FreeSql/Interface/IFreeSql.cs b/FreeSql/Interface/IFreeSql.cs
index 19064fd0..2709de31 100644
--- a/FreeSql/Interface/IFreeSql.cs
+++ b/FreeSql/Interface/IFreeSql.cs
@@ -51,7 +51,7 @@ public interface IFreeSql : IDisposable
///
IUpdate Update() where T1 : class;
///
- /// 修改数据,传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
+ /// 修改数据,传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
///
///
/// 主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合
@@ -65,7 +65,7 @@ public interface IFreeSql : IDisposable
///
ISelect Select() where T1 : class;
///
- /// 查询数据,传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
+ /// 查询数据,传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
///
///
/// 主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合
@@ -79,7 +79,7 @@ public interface IFreeSql : IDisposable
///
IDelete Delete() where T1 : class;
///
- /// 删除数据,传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
+ /// 删除数据,传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
///
///
/// 主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合