mirror of
				https://github.com/nsnail/FreeSql.git
				synced 2025-11-04 01:05:27 +08:00 
			
		
		
		
	- 优化 Guid GetDefaultValue 可能导致的错误;
This commit is contained in:
		@@ -125,6 +125,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>
 | 
				
			||||||
            添加
 | 
					            添加
 | 
				
			||||||
@@ -479,5 +486,14 @@
 | 
				
			|||||||
            <param name="that"></param>
 | 
					            <param name="that"></param>
 | 
				
			||||||
            <returns></returns>
 | 
					            <returns></returns>
 | 
				
			||||||
        </member>
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:Microsoft.Extensions.DependencyInjection.FreeSqlRepositoryDependencyInjection.AddFreeRepository(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{FreeSql.FluentDataFilter},System.Reflection.Assembly[])">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
					            批量注入 Repository,可以参考代码自行调整
 | 
				
			||||||
 | 
					            </summary>
 | 
				
			||||||
 | 
					            <param name="services"></param>
 | 
				
			||||||
 | 
					            <param name="globalDataFilter"></param>
 | 
				
			||||||
 | 
					            <param name="assemblies"></param>
 | 
				
			||||||
 | 
					            <returns></returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
    </members>
 | 
					    </members>
 | 
				
			||||||
</doc>
 | 
					</doc>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -128,10 +128,14 @@ public static partial class FreeSqlGlobalExtensions
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
        if (that == null) return null;
 | 
					        if (that == null) return null;
 | 
				
			||||||
        if (that == typeof(string)) return default(string);
 | 
					        if (that == typeof(string)) return default(string);
 | 
				
			||||||
 | 
					        if (that == typeof(Guid)) return default(Guid);
 | 
				
			||||||
        if (that.IsArray) return Array.CreateInstance(that, 0);
 | 
					        if (that.IsArray) return Array.CreateInstance(that, 0);
 | 
				
			||||||
        var ctorParms = that.InternalGetTypeConstructor0OrFirst(false)?.GetParameters();
 | 
					        var ctorParms = that.InternalGetTypeConstructor0OrFirst(false)?.GetParameters();
 | 
				
			||||||
        if (ctorParms == null || ctorParms.Any() == false) return Activator.CreateInstance(that, true);
 | 
					        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)
 | 
					    internal static NewExpression InternalNewExpression(this Type that)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -824,7 +824,7 @@
 | 
				
			|||||||
        </member>
 | 
					        </member>
 | 
				
			||||||
        <member name="M:FreeSql.IDelete`1.WhereDynamic(System.Object,System.Boolean)">
 | 
					        <member name="M:FreeSql.IDelete`1.WhereDynamic(System.Object,System.Boolean)">
 | 
				
			||||||
            <summary>
 | 
					            <summary>
 | 
				
			||||||
            传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
 | 
					            传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
 | 
				
			||||||
            </summary>
 | 
					            </summary>
 | 
				
			||||||
            <param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
 | 
					            <param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
 | 
				
			||||||
            <param name="not">是否标识为NOT</param>
 | 
					            <param name="not">是否标识为NOT</param>
 | 
				
			||||||
@@ -1662,7 +1662,7 @@
 | 
				
			|||||||
        </member>
 | 
					        </member>
 | 
				
			||||||
        <member name="M:FreeSql.ISelect`1.WhereDynamic(System.Object,System.Boolean)">
 | 
					        <member name="M:FreeSql.ISelect`1.WhereDynamic(System.Object,System.Boolean)">
 | 
				
			||||||
            <summary>
 | 
					            <summary>
 | 
				
			||||||
            传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
 | 
					            传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
 | 
				
			||||||
            </summary>
 | 
					            </summary>
 | 
				
			||||||
            <param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
 | 
					            <param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
 | 
				
			||||||
            <param name="not">是否标识为NOT</param>
 | 
					            <param name="not">是否标识为NOT</param>
 | 
				
			||||||
@@ -2077,7 +2077,7 @@
 | 
				
			|||||||
        </member>
 | 
					        </member>
 | 
				
			||||||
        <member name="M:FreeSql.IUpdate`1.WhereDynamic(System.Object,System.Boolean)">
 | 
					        <member name="M:FreeSql.IUpdate`1.WhereDynamic(System.Object,System.Boolean)">
 | 
				
			||||||
            <summary>
 | 
					            <summary>
 | 
				
			||||||
            传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
 | 
					            传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
 | 
				
			||||||
            </summary>
 | 
					            </summary>
 | 
				
			||||||
            <param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
 | 
					            <param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
 | 
				
			||||||
            <param name="not">是否标识为NOT</param>
 | 
					            <param name="not">是否标识为NOT</param>
 | 
				
			||||||
@@ -3456,7 +3456,7 @@
 | 
				
			|||||||
        </member>
 | 
					        </member>
 | 
				
			||||||
        <member name="M:IFreeSql.Update``1(System.Object)">
 | 
					        <member name="M:IFreeSql.Update``1(System.Object)">
 | 
				
			||||||
            <summary>
 | 
					            <summary>
 | 
				
			||||||
            修改数据,传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
 | 
					            修改数据,传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
 | 
				
			||||||
            </summary>
 | 
					            </summary>
 | 
				
			||||||
            <typeparam name="T1"></typeparam>
 | 
					            <typeparam name="T1"></typeparam>
 | 
				
			||||||
            <param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
 | 
					            <param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
 | 
				
			||||||
@@ -3471,7 +3471,7 @@
 | 
				
			|||||||
        </member>
 | 
					        </member>
 | 
				
			||||||
        <member name="M:IFreeSql.Select``1(System.Object)">
 | 
					        <member name="M:IFreeSql.Select``1(System.Object)">
 | 
				
			||||||
            <summary>
 | 
					            <summary>
 | 
				
			||||||
            查询数据,传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
 | 
					            查询数据,传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
 | 
				
			||||||
            </summary>
 | 
					            </summary>
 | 
				
			||||||
            <typeparam name="T1"></typeparam>
 | 
					            <typeparam name="T1"></typeparam>
 | 
				
			||||||
            <param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
 | 
					            <param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
 | 
				
			||||||
@@ -3486,7 +3486,7 @@
 | 
				
			|||||||
        </member>
 | 
					        </member>
 | 
				
			||||||
        <member name="M:IFreeSql.Delete``1(System.Object)">
 | 
					        <member name="M:IFreeSql.Delete``1(System.Object)">
 | 
				
			||||||
            <summary>
 | 
					            <summary>
 | 
				
			||||||
            删除数据,传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
 | 
					            删除数据,传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
 | 
				
			||||||
            </summary>
 | 
					            </summary>
 | 
				
			||||||
            <typeparam name="T1"></typeparam>
 | 
					            <typeparam name="T1"></typeparam>
 | 
				
			||||||
            <param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
 | 
					            <param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
 | 
				
			||||||
@@ -3540,7 +3540,7 @@
 | 
				
			|||||||
        </member>
 | 
					        </member>
 | 
				
			||||||
    </members>
 | 
					    </members>
 | 
				
			||||||
</doc>
 | 
					</doc>
 | 
				
			||||||
           <returns></returns>
 | 
					  <returns></returns>
 | 
				
			||||||
        </member>
 | 
					        </member>
 | 
				
			||||||
        <member name="M:System.Linq.Expressions.LambadaExpressionExtensions.Or``5(System.Linq.Expressions.Expression{System.Func{``0,``1,``2,``3,``4,System.Boolean}},System.Linq.Expressions.Expression{System.Func{``0,``1,``2,``3,``4,System.Boolean}})">
 | 
					        <member name="M:System.Linq.Expressions.LambadaExpressionExtensions.Or``5(System.Linq.Expressions.Expression{System.Func{``0,``1,``2,``3,``4,System.Boolean}},System.Linq.Expressions.Expression{System.Func{``0,``1,``2,``3,``4,System.Boolean}})">
 | 
				
			||||||
            <summary>
 | 
					            <summary>
 | 
				
			||||||
@@ -3619,7 +3619,7 @@
 | 
				
			|||||||
        </member>
 | 
					        </member>
 | 
				
			||||||
        <member name="M:IFreeSql.Update``1(System.Object)">
 | 
					        <member name="M:IFreeSql.Update``1(System.Object)">
 | 
				
			||||||
            <summary>
 | 
					            <summary>
 | 
				
			||||||
            修改数据,传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
 | 
					            修改数据,传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
 | 
				
			||||||
            </summary>
 | 
					            </summary>
 | 
				
			||||||
            <typeparam name="T1"></typeparam>
 | 
					            <typeparam name="T1"></typeparam>
 | 
				
			||||||
            <param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
 | 
					            <param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
 | 
				
			||||||
@@ -3634,7 +3634,7 @@
 | 
				
			|||||||
        </member>
 | 
					        </member>
 | 
				
			||||||
        <member name="M:IFreeSql.Select``1(System.Object)">
 | 
					        <member name="M:IFreeSql.Select``1(System.Object)">
 | 
				
			||||||
            <summary>
 | 
					            <summary>
 | 
				
			||||||
            查询数据,传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
 | 
					            查询数据,传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
 | 
				
			||||||
            </summary>
 | 
					            </summary>
 | 
				
			||||||
            <typeparam name="T1"></typeparam>
 | 
					            <typeparam name="T1"></typeparam>
 | 
				
			||||||
            <param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
 | 
					            <param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
 | 
				
			||||||
@@ -3649,7 +3649,7 @@
 | 
				
			|||||||
        </member>
 | 
					        </member>
 | 
				
			||||||
        <member name="M:IFreeSql.Delete``1(System.Object)">
 | 
					        <member name="M:IFreeSql.Delete``1(System.Object)">
 | 
				
			||||||
            <summary>
 | 
					            <summary>
 | 
				
			||||||
            删除数据,传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
 | 
					            删除数据,传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
 | 
				
			||||||
            </summary>
 | 
					            </summary>
 | 
				
			||||||
            <typeparam name="T1"></typeparam>
 | 
					            <typeparam name="T1"></typeparam>
 | 
				
			||||||
            <param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
 | 
					            <param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -49,7 +49,7 @@ namespace FreeSql
 | 
				
			|||||||
        /// <returns></returns>
 | 
					        /// <returns></returns>
 | 
				
			||||||
        IDelete<T1> Where(IEnumerable<T1> items);
 | 
					        IDelete<T1> Where(IEnumerable<T1> items);
 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
        /// 传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
 | 
					        /// 传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
 | 
				
			||||||
        /// </summary>
 | 
					        /// </summary>
 | 
				
			||||||
        /// <param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
 | 
					        /// <param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
 | 
				
			||||||
        /// <param name="not">是否标识为NOT</param>
 | 
					        /// <param name="not">是否标识为NOT</param>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -292,7 +292,7 @@ namespace FreeSql
 | 
				
			|||||||
        /// <returns></returns>
 | 
					        /// <returns></returns>
 | 
				
			||||||
        ISelect<T1> Where<T2, T3, T4, T5>(Expression<Func<T1, T2, T3, T4, T5, bool>> exp) where T2 : class where T3 : class where T4 : class where T5 : class;
 | 
					        ISelect<T1> Where<T2, T3, T4, T5>(Expression<Func<T1, T2, T3, T4, T5, bool>> exp) where T2 : class where T3 : class where T4 : class where T5 : class;
 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
        /// 传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
 | 
					        /// 传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
 | 
				
			||||||
        /// </summary>
 | 
					        /// </summary>
 | 
				
			||||||
        /// <param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
 | 
					        /// <param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
 | 
				
			||||||
        /// <param name="not">是否标识为NOT</param>
 | 
					        /// <param name="not">是否标识为NOT</param>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -147,7 +147,7 @@ namespace FreeSql
 | 
				
			|||||||
        /// <returns></returns>
 | 
					        /// <returns></returns>
 | 
				
			||||||
        IUpdate<T1> Where(IEnumerable<T1> items);
 | 
					        IUpdate<T1> Where(IEnumerable<T1> items);
 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
        /// 传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
 | 
					        /// 传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
 | 
				
			||||||
        /// </summary>
 | 
					        /// </summary>
 | 
				
			||||||
        /// <param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
 | 
					        /// <param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
 | 
				
			||||||
        /// <param name="not">是否标识为NOT</param>
 | 
					        /// <param name="not">是否标识为NOT</param>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -51,7 +51,7 @@ public interface IFreeSql : IDisposable
 | 
				
			|||||||
    /// <returns></returns>
 | 
					    /// <returns></returns>
 | 
				
			||||||
    IUpdate<T1> Update<T1>() where T1 : class;
 | 
					    IUpdate<T1> Update<T1>() where T1 : class;
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// 修改数据,传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
 | 
					    /// 修改数据,传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    /// <typeparam name="T1"></typeparam>
 | 
					    /// <typeparam name="T1"></typeparam>
 | 
				
			||||||
    /// <param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
 | 
					    /// <param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
 | 
				
			||||||
@@ -65,7 +65,7 @@ public interface IFreeSql : IDisposable
 | 
				
			|||||||
    /// <returns></returns>
 | 
					    /// <returns></returns>
 | 
				
			||||||
    ISelect<T1> Select<T1>() where T1 : class;
 | 
					    ISelect<T1> Select<T1>() where T1 : class;
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// 查询数据,传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
 | 
					    /// 查询数据,传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    /// <typeparam name="T1"></typeparam>
 | 
					    /// <typeparam name="T1"></typeparam>
 | 
				
			||||||
    /// <param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
 | 
					    /// <param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
 | 
				
			||||||
@@ -79,7 +79,7 @@ public interface IFreeSql : IDisposable
 | 
				
			|||||||
    /// <returns></returns>
 | 
					    /// <returns></returns>
 | 
				
			||||||
    IDelete<T1> Delete<T1>() where T1 : class;
 | 
					    IDelete<T1> Delete<T1>() where T1 : class;
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// 删除数据,传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
 | 
					    /// 删除数据,传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    /// <typeparam name="T1"></typeparam>
 | 
					    /// <typeparam name="T1"></typeparam>
 | 
				
			||||||
    /// <param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
 | 
					    /// <param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user