mirror of
				https://github.com/nsnail/FreeSql.git
				synced 2025-11-04 17:20:49 +08:00 
			
		
		
		
	v3.2.806-preview20231204 - 增加 WithSql().WhereDynamicFilter 的支持;
This commit is contained in:
		@@ -11,7 +11,7 @@
 | 
				
			|||||||
	<!--
 | 
						<!--
 | 
				
			||||||
	经常出于版本交叉问题,暂时关闭,在每个项目上设置版本号
 | 
						经常出于版本交叉问题,暂时关闭,在每个项目上设置版本号
 | 
				
			||||||
	<PropertyGroup>
 | 
						<PropertyGroup>
 | 
				
			||||||
		<Version>3.2.806-preview20231201</Version>
 | 
							<Version>3.2.806-preview20231204</Version>
 | 
				
			||||||
	</PropertyGroup>
 | 
						</PropertyGroup>
 | 
				
			||||||
	-->
 | 
						-->
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,7 +18,7 @@
 | 
				
			|||||||
		<SignAssembly>true</SignAssembly>
 | 
							<SignAssembly>true</SignAssembly>
 | 
				
			||||||
		<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
							<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
				
			||||||
		<DelaySign>false</DelaySign>
 | 
							<DelaySign>false</DelaySign>
 | 
				
			||||||
		<Version>3.2.806-preview20231201</Version>
 | 
							<Version>3.2.806-preview20231204</Version>
 | 
				
			||||||
		<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
							<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
				
			||||||
	</PropertyGroup>
 | 
						</PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -19,7 +19,7 @@
 | 
				
			|||||||
		<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
							<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
				
			||||||
		<DelaySign>false</DelaySign>
 | 
							<DelaySign>false</DelaySign>
 | 
				
			||||||
		<LangVersion>latest</LangVersion>
 | 
							<LangVersion>latest</LangVersion>
 | 
				
			||||||
		<Version>3.2.806-preview20231201</Version>
 | 
							<Version>3.2.806-preview20231204</Version>
 | 
				
			||||||
		<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
							<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
				
			||||||
	</PropertyGroup>
 | 
						</PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,7 +18,7 @@
 | 
				
			|||||||
		<SignAssembly>true</SignAssembly>
 | 
							<SignAssembly>true</SignAssembly>
 | 
				
			||||||
		<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
							<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
				
			||||||
		<DelaySign>false</DelaySign>
 | 
							<DelaySign>false</DelaySign>
 | 
				
			||||||
		<Version>3.2.806-preview20231201</Version>
 | 
							<Version>3.2.806-preview20231204</Version>
 | 
				
			||||||
		<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
							<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
				
			||||||
	</PropertyGroup>
 | 
						</PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,7 +15,7 @@
 | 
				
			|||||||
		<Title>$(AssemblyName)</Title>
 | 
							<Title>$(AssemblyName)</Title>
 | 
				
			||||||
		<IsPackable>true</IsPackable>
 | 
							<IsPackable>true</IsPackable>
 | 
				
			||||||
		<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
 | 
							<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
 | 
				
			||||||
		<Version>3.2.806-preview20231201</Version>
 | 
							<Version>3.2.806-preview20231204</Version>
 | 
				
			||||||
		<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
							<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
				
			||||||
	</PropertyGroup>
 | 
						</PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,7 +18,7 @@
 | 
				
			|||||||
		<SignAssembly>true</SignAssembly>
 | 
							<SignAssembly>true</SignAssembly>
 | 
				
			||||||
		<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
							<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
				
			||||||
		<DelaySign>false</DelaySign>
 | 
							<DelaySign>false</DelaySign>
 | 
				
			||||||
		<Version>3.2.806-preview20231201</Version>
 | 
							<Version>3.2.806-preview20231204</Version>
 | 
				
			||||||
		<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
							<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
				
			||||||
	</PropertyGroup>
 | 
						</PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,7 +13,7 @@
 | 
				
			|||||||
		<PackageProjectUrl>https://github.com/2881099/FreeSql</PackageProjectUrl>
 | 
							<PackageProjectUrl>https://github.com/2881099/FreeSql</PackageProjectUrl>
 | 
				
			||||||
		<RepositoryUrl>https://github.com/2881099/FreeSql</RepositoryUrl>
 | 
							<RepositoryUrl>https://github.com/2881099/FreeSql</RepositoryUrl>
 | 
				
			||||||
		<PackageTags>FreeSql DbFirst 实体生成器</PackageTags>
 | 
							<PackageTags>FreeSql DbFirst 实体生成器</PackageTags>
 | 
				
			||||||
		<Version>3.2.806-preview20231201</Version>
 | 
							<Version>3.2.806-preview20231204</Version>
 | 
				
			||||||
		<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
							<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
				
			||||||
	</PropertyGroup>
 | 
						</PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,7 +17,7 @@
 | 
				
			|||||||
		<SignAssembly>true</SignAssembly>
 | 
							<SignAssembly>true</SignAssembly>
 | 
				
			||||||
		<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
							<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
				
			||||||
		<DelaySign>false</DelaySign>
 | 
							<DelaySign>false</DelaySign>
 | 
				
			||||||
		<Version>3.2.806-preview20231201</Version>
 | 
							<Version>3.2.806-preview20231204</Version>
 | 
				
			||||||
		<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
							<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
				
			||||||
	</PropertyGroup>
 | 
						</PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,7 +17,7 @@
 | 
				
			|||||||
		<SignAssembly>true</SignAssembly>
 | 
							<SignAssembly>true</SignAssembly>
 | 
				
			||||||
		<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
							<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
				
			||||||
		<DelaySign>false</DelaySign>
 | 
							<DelaySign>false</DelaySign>
 | 
				
			||||||
		<Version>3.2.806-preview20231201</Version>
 | 
							<Version>3.2.806-preview20231204</Version>
 | 
				
			||||||
		<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
							<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
				
			||||||
	</PropertyGroup>
 | 
						</PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -733,15 +733,6 @@
 | 
				
			|||||||
            <param name="modelBuilder"></param>
 | 
					            <param name="modelBuilder"></param>
 | 
				
			||||||
            <returns></returns>
 | 
					            <returns></returns>
 | 
				
			||||||
        </member>
 | 
					        </member>
 | 
				
			||||||
        <member name="M:FreeSqlDbContextExtensions.ApplyConfigurationsFromAssembly(FreeSql.ICodeFirst,System.Reflection.Assembly,System.Func{System.Type,System.Boolean})">
 | 
					 | 
				
			||||||
            <summary>
 | 
					 | 
				
			||||||
            根据Assembly扫描所有继承IEntityTypeConfiguration<T>的配置类
 | 
					 | 
				
			||||||
            </summary>
 | 
					 | 
				
			||||||
            <param name="codeFirst"></param>
 | 
					 | 
				
			||||||
            <param name="assembly"></param>
 | 
					 | 
				
			||||||
            <param name="predicate"></param>
 | 
					 | 
				
			||||||
            <returns></returns>
 | 
					 | 
				
			||||||
        </member>
 | 
					 | 
				
			||||||
        <member name="M:FreeSqlDbContextExtensions.CreateDbContext(IFreeSql)">
 | 
					        <member name="M:FreeSqlDbContextExtensions.CreateDbContext(IFreeSql)">
 | 
				
			||||||
            <summary>
 | 
					            <summary>
 | 
				
			||||||
            创建普通数据上下文档对象
 | 
					            创建普通数据上下文档对象
 | 
				
			||||||
@@ -800,14 +791,5 @@
 | 
				
			|||||||
            <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>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,7 +17,7 @@
 | 
				
			|||||||
		<SignAssembly>true</SignAssembly>
 | 
							<SignAssembly>true</SignAssembly>
 | 
				
			||||||
		<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
							<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
				
			||||||
		<DelaySign>false</DelaySign>
 | 
							<DelaySign>false</DelaySign>
 | 
				
			||||||
		<Version>3.2.806-preview20231201</Version>
 | 
							<Version>3.2.806-preview20231204</Version>
 | 
				
			||||||
		<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
							<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
				
			||||||
	</PropertyGroup>
 | 
						</PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -162,6 +162,11 @@ namespace FreeSql
 | 
				
			|||||||
            expContext.Value.Result = sql;
 | 
					            expContext.Value.Result = sql;
 | 
				
			||||||
            return false;
 | 
					            return false;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
							static object InternalRawField([RawValue] string sql)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								expContext.Value.Result = sql;
 | 
				
			||||||
 | 
								return default;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		#region 大小判断
 | 
							#region 大小判断
 | 
				
			||||||
		/// <summary>
 | 
							/// <summary>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,7 +17,7 @@
 | 
				
			|||||||
		<SignAssembly>true</SignAssembly>
 | 
							<SignAssembly>true</SignAssembly>
 | 
				
			||||||
		<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
							<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
				
			||||||
		<DelaySign>false</DelaySign>
 | 
							<DelaySign>false</DelaySign>
 | 
				
			||||||
		<Version>3.2.806-preview20231201</Version>
 | 
							<Version>3.2.806-preview20231204</Version>
 | 
				
			||||||
		<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
							<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
				
			||||||
	</PropertyGroup>
 | 
						</PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -281,6 +281,8 @@ namespace FreeSql.Internal.CommonProvider
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							public static MethodInfo _methodSqlExtInternalRawField = typeof(SqlExt).GetMethod("InternalRawField", BindingFlags.NonPublic | BindingFlags.Static);
 | 
				
			||||||
 | 
							public static MethodInfo _methodSqlExtInternalRawSql = typeof(SqlExt).GetMethod("InternalRawSql", BindingFlags.NonPublic | BindingFlags.Static);
 | 
				
			||||||
		public Expression ConvertStringPropertyToExpression(string property, bool fromFirstTable = false)
 | 
							public Expression ConvertStringPropertyToExpression(string property, bool fromFirstTable = false)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            if (string.IsNullOrEmpty(property)) return null;
 | 
					            if (string.IsNullOrEmpty(property)) return null;
 | 
				
			||||||
@@ -289,6 +291,15 @@ namespace FreeSql.Internal.CommonProvider
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            if (field.Length == 1 && fromFirstTable == false)
 | 
					            if (field.Length == 1 && fromFirstTable == false)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
 | 
									if (_tables.Count == 1 && _tables[0].Table?.Type == typeof(object))
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
					                    //配合 .Select<object>().WithSql("...").WhereDynamicFilter(...)
 | 
				
			||||||
 | 
										var tb = _tables[0];
 | 
				
			||||||
 | 
										tb.Parameter = Expression.Parameter(tb.Table.Type, tb.Alias);
 | 
				
			||||||
 | 
										var rawField = $"{tb.Alias}.{_commonUtils.QuoteSqlName(field[0])}";
 | 
				
			||||||
 | 
										return Expression.Call(_methodSqlExtInternalRawField, Expression.Constant(rawField, typeof(string)));
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				foreach (var tb in _tables)
 | 
									foreach (var tb in _tables)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    if (tb.Table.ColumnsByCs.TryGetValue(field[0], out var col) &&
 | 
					                    if (tb.Table.ColumnsByCs.TryGetValue(field[0], out var col) &&
 | 
				
			||||||
@@ -1029,7 +1040,7 @@ namespace FreeSql.Internal.CommonProvider
 | 
				
			|||||||
                                    .Select(a => a.ParameterType == typeof(object) ? (object)this : 
 | 
					                                    .Select(a => a.ParameterType == typeof(object) ? (object)this : 
 | 
				
			||||||
                                        (a.ParameterType == typeof(string) ? (object)(fi.Value?.ToString()) : (object)null))
 | 
					                                        (a.ParameterType == typeof(string) ? (object)(fi.Value?.ToString()) : (object)null))
 | 
				
			||||||
                                    .ToArray());
 | 
					                                    .ToArray());
 | 
				
			||||||
                            exp = fiValue0MethodReturn is Expression expression ? expression : Expression.Call(typeof(SqlExt).GetMethod("InternalRawSql", BindingFlags.NonPublic | BindingFlags.Static), Expression.Constant(fiValue0MethodReturn?.ToString(), typeof(string)));
 | 
					                            exp = fiValue0MethodReturn is Expression expression ? expression : Expression.Call(_methodSqlExtInternalRawSql, Expression.Constant(fiValue0MethodReturn?.ToString(), typeof(string)));
 | 
				
			||||||
                            break;
 | 
					                            break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        case DynamicFilterOperator.Contains:
 | 
					                        case DynamicFilterOperator.Contains:
 | 
				
			||||||
@@ -1043,6 +1054,16 @@ namespace FreeSql.Internal.CommonProvider
 | 
				
			|||||||
                            break;
 | 
					                            break;
 | 
				
			||||||
                        default:
 | 
					                        default:
 | 
				
			||||||
                            exp = ConvertStringPropertyToExpression(fi.Field);
 | 
					                            exp = ConvertStringPropertyToExpression(fi.Field);
 | 
				
			||||||
 | 
					                            if (exp.Type == typeof(object) && fi.Value != null)
 | 
				
			||||||
 | 
					                            {
 | 
				
			||||||
 | 
					                                var valueType = fi.Value?.GetType();
 | 
				
			||||||
 | 
					                                if (Utils.dicExecuteArrayRowReadClassOrTuple.ContainsKey(valueType)) exp = Expression.Convert(exp, valueType);
 | 
				
			||||||
 | 
													else if (valueType.FullName == "System.Text.Json.JsonElement")
 | 
				
			||||||
 | 
					                                {
 | 
				
			||||||
 | 
														var valueKind = valueType.GetProperty("ValueKind").GetValue(fi.Value, null).ToString();
 | 
				
			||||||
 | 
					                                    if (valueKind == "Number") exp = Expression.Convert(exp, typeof(decimal));
 | 
				
			||||||
 | 
													}
 | 
				
			||||||
 | 
												}
 | 
				
			||||||
                            break;
 | 
					                            break;
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    switch (fi.Operator)
 | 
					                    switch (fi.Operator)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -47,6 +47,13 @@ namespace FreeSql.Internal
 | 
				
			|||||||
                ) return null;
 | 
					                ) return null;
 | 
				
			||||||
            var tbc = _cacheGetTableByEntity.GetOrAdd(common._orm.Ado.DataType, k1 => new ConcurrentDictionary<Type, TableInfo>()); //区分数据库类型缓存
 | 
					            var tbc = _cacheGetTableByEntity.GetOrAdd(common._orm.Ado.DataType, k1 => new ConcurrentDictionary<Type, TableInfo>()); //区分数据库类型缓存
 | 
				
			||||||
            if (tbc.TryGetValue(entity, out var trytb)) return trytb;
 | 
					            if (tbc.TryGetValue(entity, out var trytb)) return trytb;
 | 
				
			||||||
 | 
					            if (entity == typeof(object)) return new TableInfo
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                Type = entity,
 | 
				
			||||||
 | 
					                CsName = entity.Name,
 | 
				
			||||||
 | 
					                DbName = entity.Name,
 | 
				
			||||||
 | 
					                DisableSyncStructure = true,
 | 
				
			||||||
 | 
					            };
 | 
				
			||||||
            if (common.CodeFirst.GetDbInfo(entity) != null) return null;
 | 
					            if (common.CodeFirst.GetDbInfo(entity) != null) return null;
 | 
				
			||||||
            if (typeof(IEnumerable).IsAssignableFrom(entity) && entity.IsGenericType == true) return null;
 | 
					            if (typeof(IEnumerable).IsAssignableFrom(entity) && entity.IsGenericType == true) return null;
 | 
				
			||||||
            if (entity.IsArray) return null;
 | 
					            if (entity.IsArray) return null;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -19,7 +19,7 @@
 | 
				
			|||||||
		<SignAssembly>False</SignAssembly>
 | 
							<SignAssembly>False</SignAssembly>
 | 
				
			||||||
		<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
							<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
				
			||||||
		<DelaySign>false</DelaySign>
 | 
							<DelaySign>false</DelaySign>
 | 
				
			||||||
		<Version>3.2.806-preview20231201</Version>
 | 
							<Version>3.2.806-preview20231204</Version>
 | 
				
			||||||
		<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
							<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
				
			||||||
	</PropertyGroup>
 | 
						</PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,7 +18,7 @@
 | 
				
			|||||||
		<SignAssembly>true</SignAssembly>
 | 
							<SignAssembly>true</SignAssembly>
 | 
				
			||||||
		<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
							<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
				
			||||||
		<DelaySign>false</DelaySign>
 | 
							<DelaySign>false</DelaySign>
 | 
				
			||||||
		<Version>3.2.806-preview20231201</Version>
 | 
							<Version>3.2.806-preview20231204</Version>
 | 
				
			||||||
		<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
							<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
				
			||||||
	</PropertyGroup>
 | 
						</PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,7 +15,7 @@
 | 
				
			|||||||
		<Title>$(AssemblyName)</Title>
 | 
							<Title>$(AssemblyName)</Title>
 | 
				
			||||||
		<IsPackable>true</IsPackable>
 | 
							<IsPackable>true</IsPackable>
 | 
				
			||||||
		<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
 | 
							<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
 | 
				
			||||||
		<Version>3.2.806-preview20231201</Version>
 | 
							<Version>3.2.806-preview20231204</Version>
 | 
				
			||||||
		<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
							<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
				
			||||||
	</PropertyGroup>
 | 
						</PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,7 +18,7 @@
 | 
				
			|||||||
		<SignAssembly>true</SignAssembly>
 | 
							<SignAssembly>true</SignAssembly>
 | 
				
			||||||
		<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
							<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
				
			||||||
		<DelaySign>false</DelaySign>
 | 
							<DelaySign>false</DelaySign>
 | 
				
			||||||
		<Version>3.2.806-preview20231201</Version>
 | 
							<Version>3.2.806-preview20231204</Version>
 | 
				
			||||||
		<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
							<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
				
			||||||
	</PropertyGroup>
 | 
						</PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,7 +18,7 @@
 | 
				
			|||||||
		<SignAssembly>true</SignAssembly>
 | 
							<SignAssembly>true</SignAssembly>
 | 
				
			||||||
		<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
							<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
				
			||||||
		<DelaySign>false</DelaySign>
 | 
							<DelaySign>false</DelaySign>
 | 
				
			||||||
		<Version>3.2.806-preview20231201</Version>
 | 
							<Version>3.2.806-preview20231204</Version>
 | 
				
			||||||
		<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
							<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
				
			||||||
	</PropertyGroup>
 | 
						</PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,7 +15,7 @@
 | 
				
			|||||||
		<Title>$(AssemblyName)</Title>
 | 
							<Title>$(AssemblyName)</Title>
 | 
				
			||||||
		<IsPackable>true</IsPackable>
 | 
							<IsPackable>true</IsPackable>
 | 
				
			||||||
		<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
 | 
							<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
 | 
				
			||||||
		<Version>3.2.806-preview20231201</Version>
 | 
							<Version>3.2.806-preview20231204</Version>
 | 
				
			||||||
		<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
							<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
				
			||||||
	</PropertyGroup>
 | 
						</PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,7 +18,7 @@
 | 
				
			|||||||
		<SignAssembly>true</SignAssembly>
 | 
							<SignAssembly>true</SignAssembly>
 | 
				
			||||||
		<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
							<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
				
			||||||
		<DelaySign>false</DelaySign>
 | 
							<DelaySign>false</DelaySign>
 | 
				
			||||||
		<Version>3.2.806-preview20231201</Version>
 | 
							<Version>3.2.806-preview20231204</Version>
 | 
				
			||||||
		<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
							<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
				
			||||||
	</PropertyGroup>
 | 
						</PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,7 +18,7 @@
 | 
				
			|||||||
		<SignAssembly>true</SignAssembly>
 | 
							<SignAssembly>true</SignAssembly>
 | 
				
			||||||
		<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
							<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
				
			||||||
		<DelaySign>false</DelaySign>
 | 
							<DelaySign>false</DelaySign>
 | 
				
			||||||
		<Version>3.2.806-preview20231201</Version>
 | 
							<Version>3.2.806-preview20231204</Version>
 | 
				
			||||||
		<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
							<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
				
			||||||
	</PropertyGroup>
 | 
						</PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,7 +18,7 @@
 | 
				
			|||||||
		<SignAssembly>true</SignAssembly>
 | 
							<SignAssembly>true</SignAssembly>
 | 
				
			||||||
		<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
							<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
				
			||||||
		<DelaySign>false</DelaySign>
 | 
							<DelaySign>false</DelaySign>
 | 
				
			||||||
		<Version>3.2.806-preview20231201</Version>
 | 
							<Version>3.2.806-preview20231204</Version>
 | 
				
			||||||
		<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
							<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
				
			||||||
	</PropertyGroup>
 | 
						</PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,7 +18,7 @@
 | 
				
			|||||||
		<SignAssembly>true</SignAssembly>
 | 
							<SignAssembly>true</SignAssembly>
 | 
				
			||||||
		<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
							<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
				
			||||||
		<DelaySign>false</DelaySign>
 | 
							<DelaySign>false</DelaySign>
 | 
				
			||||||
		<Version>3.2.806-preview20231201</Version>
 | 
							<Version>3.2.806-preview20231204</Version>
 | 
				
			||||||
		<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
							<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
				
			||||||
	</PropertyGroup>
 | 
						</PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,7 +18,7 @@
 | 
				
			|||||||
		<SignAssembly>true</SignAssembly>
 | 
							<SignAssembly>true</SignAssembly>
 | 
				
			||||||
		<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
							<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
				
			||||||
		<DelaySign>false</DelaySign>
 | 
							<DelaySign>false</DelaySign>
 | 
				
			||||||
		<Version>3.2.806-preview20231201</Version>
 | 
							<Version>3.2.806-preview20231204</Version>
 | 
				
			||||||
		<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
							<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
				
			||||||
	</PropertyGroup>
 | 
						</PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,7 +18,7 @@
 | 
				
			|||||||
		<SignAssembly>true</SignAssembly>
 | 
							<SignAssembly>true</SignAssembly>
 | 
				
			||||||
		<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
							<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
				
			||||||
		<DelaySign>false</DelaySign>
 | 
							<DelaySign>false</DelaySign>
 | 
				
			||||||
		<Version>3.2.806-preview20231201</Version>
 | 
							<Version>3.2.806-preview20231204</Version>
 | 
				
			||||||
		<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
							<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
				
			||||||
	</PropertyGroup>
 | 
						</PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,7 +18,7 @@
 | 
				
			|||||||
		<SignAssembly>true</SignAssembly>
 | 
							<SignAssembly>true</SignAssembly>
 | 
				
			||||||
		<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
							<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
				
			||||||
		<DelaySign>false</DelaySign>
 | 
							<DelaySign>false</DelaySign>
 | 
				
			||||||
		<Version>3.2.806-preview20231201</Version>
 | 
							<Version>3.2.806-preview20231204</Version>
 | 
				
			||||||
		<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
							<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
				
			||||||
	</PropertyGroup>
 | 
						</PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,7 +18,7 @@
 | 
				
			|||||||
		<SignAssembly>true</SignAssembly>
 | 
							<SignAssembly>true</SignAssembly>
 | 
				
			||||||
		<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
							<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
				
			||||||
		<DelaySign>false</DelaySign>
 | 
							<DelaySign>false</DelaySign>
 | 
				
			||||||
		<Version>3.2.806-preview20231201</Version>
 | 
							<Version>3.2.806-preview20231204</Version>
 | 
				
			||||||
		<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
							<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
				
			||||||
	</PropertyGroup>
 | 
						</PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,7 +15,7 @@
 | 
				
			|||||||
		<Title>$(AssemblyName)</Title>
 | 
							<Title>$(AssemblyName)</Title>
 | 
				
			||||||
		<IsPackable>true</IsPackable>
 | 
							<IsPackable>true</IsPackable>
 | 
				
			||||||
		<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
 | 
							<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
 | 
				
			||||||
		<Version>3.2.806-preview20231201</Version>
 | 
							<Version>3.2.806-preview20231204</Version>
 | 
				
			||||||
		<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
							<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
				
			||||||
	</PropertyGroup>
 | 
						</PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,7 +18,7 @@
 | 
				
			|||||||
		<SignAssembly>true</SignAssembly>
 | 
							<SignAssembly>true</SignAssembly>
 | 
				
			||||||
		<DelaySign>false</DelaySign>
 | 
							<DelaySign>false</DelaySign>
 | 
				
			||||||
		<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
							<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
				
			||||||
		<Version>3.2.806-preview20231201</Version>
 | 
							<Version>3.2.806-preview20231204</Version>
 | 
				
			||||||
		<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
							<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
				
			||||||
	</PropertyGroup>
 | 
						</PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,7 +18,7 @@
 | 
				
			|||||||
		<SignAssembly>true</SignAssembly>
 | 
							<SignAssembly>true</SignAssembly>
 | 
				
			||||||
		<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
							<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
				
			||||||
		<DelaySign>false</DelaySign>
 | 
							<DelaySign>false</DelaySign>
 | 
				
			||||||
		<Version>3.2.806-preview20231201</Version>
 | 
							<Version>3.2.806-preview20231204</Version>
 | 
				
			||||||
		<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
							<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
				
			||||||
	</PropertyGroup>
 | 
						</PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,7 +18,7 @@
 | 
				
			|||||||
		<SignAssembly>true</SignAssembly>
 | 
							<SignAssembly>true</SignAssembly>
 | 
				
			||||||
		<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
							<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
				
			||||||
		<DelaySign>false</DelaySign>
 | 
							<DelaySign>false</DelaySign>
 | 
				
			||||||
		<Version>3.2.806-preview20231201</Version>
 | 
							<Version>3.2.806-preview20231204</Version>
 | 
				
			||||||
		<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
							<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
				
			||||||
	</PropertyGroup>
 | 
						</PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,7 +18,7 @@
 | 
				
			|||||||
        <SignAssembly>true</SignAssembly>
 | 
					        <SignAssembly>true</SignAssembly>
 | 
				
			||||||
        <AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
					        <AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
 | 
				
			||||||
        <DelaySign>false</DelaySign>
 | 
					        <DelaySign>false</DelaySign>
 | 
				
			||||||
		<Version>3.2.806-preview20231201</Version>
 | 
							<Version>3.2.806-preview20231204</Version>
 | 
				
			||||||
		<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
							<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
				
			||||||
	</PropertyGroup>
 | 
						</PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,7 +15,7 @@
 | 
				
			|||||||
		<Title>$(AssemblyName)</Title>
 | 
							<Title>$(AssemblyName)</Title>
 | 
				
			||||||
		<IsPackable>true</IsPackable>
 | 
							<IsPackable>true</IsPackable>
 | 
				
			||||||
		<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
 | 
							<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
 | 
				
			||||||
		<Version>3.2.806-preview20231201</Version>
 | 
							<Version>3.2.806-preview20231204</Version>
 | 
				
			||||||
		<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
							<PackageReadmeFile>readme.md</PackageReadmeFile>
 | 
				
			||||||
	</PropertyGroup>
 | 
						</PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user