Prechádzať zdrojové kódy

修改cosmosSQL拼接参数化查询

李思淳 5 rokov pred
rodič
commit
ba72ede963

+ 4 - 7
TEAMModelOS.SDK/Module/AzureCosmosDBV3/AzureCosmosDBV3Repository.cs

@@ -330,8 +330,7 @@ namespace TEAMModelOS.SDK.Module.AzureCosmosDBV3
 
                 //};
                 StringBuilder sql = new StringBuilder("select value(c) from c");
-                SQLHelper.GetSQL(dict, ref sql);
-                CosmosDbQuery cosmosDbQuery = new CosmosDbQuery { QueryText = sql.ToString() };
+                CosmosDbQuery cosmosDbQuery = SQLHelperParametric.GetSQL(dict,sql);
                 QueryRequestOptions queryRequestOptions = GetDefaultQueryRequestOptions(itemsPerPage: GetEffectivePageSize(itemsPerPage, maxItemCount));
                 FeedIterator<dynamic> query = container.GetItemQueryIterator<dynamic>(queryDefinition: cosmosDbQuery.CosmosQueryDefinition, requestOptions: queryRequestOptions);
                 return await ResultsFromFeedIterator(query, maxItemCount);
@@ -355,8 +354,7 @@ namespace TEAMModelOS.SDK.Module.AzureCosmosDBV3
 
                 //};
                 StringBuilder sql = new StringBuilder("select  value count(c)  from c");
-                SQLHelper.GetSQL(dict, ref sql);
-                CosmosDbQuery cosmosDbQuery = new CosmosDbQuery { QueryText = sql.ToString() };
+                CosmosDbQuery cosmosDbQuery = SQLHelperParametric.GetSQL(dict, sql);
                 QueryRequestOptions queryRequestOptions = GetDefaultQueryRequestOptions(itemsPerPage: GetEffectivePageSize(itemsPerPage, maxItemCount));
                 FeedIterator<dynamic> query = container.GetItemQueryIterator<dynamic>(queryDefinition: cosmosDbQuery.CosmosQueryDefinition, requestOptions: queryRequestOptions);
                 return await ResultsFromFeedIterator(query, maxItemCount);
@@ -375,9 +373,8 @@ namespace TEAMModelOS.SDK.Module.AzureCosmosDBV3
         {
 
             StringBuilder sql = new StringBuilder("select value(c) from c");
-             SQLHelper.GetSQL(dict,ref sql);
-            CosmosDbQuery cosmosDbQuery = new CosmosDbQuery { QueryText = sql.ToString() };
-           QueryRequestOptions queryRequestOptions = GetDefaultQueryRequestOptions(itemsPerPage: GetEffectivePageSize(itemsPerPage, maxItemCount));
+            CosmosDbQuery cosmosDbQuery = SQLHelperParametric.GetSQL(dict, sql);
+            QueryRequestOptions queryRequestOptions = GetDefaultQueryRequestOptions(itemsPerPage: GetEffectivePageSize(itemsPerPage, maxItemCount));
             return await ResultsFromQueryAndOptions<T>(cosmosDbQuery, queryRequestOptions);
         }
 

+ 9 - 9
TEAMModelOS.SDK/Module/AzureCosmosDBV3/SQLHelperParametric.cs

@@ -637,6 +637,15 @@ namespace TEAMModelOS.SDK.Module.AzureCosmosDBV3
                         aa++;
                     }
                 }
+                else if (keyValue.Value is IEnumerable enumerable && !(keyValue.Value is String))
+                {
+                    int aa = 0;
+                    foreach (object obja in enumerable)
+                    {
+                        parmeters.Add("@" + key + aa, obja);
+                        aa++;
+                    }
+                }
                 else if (keyValue.Value is JsonElement jsonElement)
                 {
                     if (jsonElement.ValueKind is JsonValueKind.Array)
@@ -687,15 +696,6 @@ namespace TEAMModelOS.SDK.Module.AzureCosmosDBV3
                         }
                     }
                 }
-                else if (keyValue.Value is IEnumerable enumerable)
-                {
-                    int aa = 0;
-                    foreach (object obja in enumerable)
-                    {
-                        parmeters.Add("@" + key + aa, obja);
-                        aa++;
-                    }
-                }
                 else
                 {
                     parmeters.Add("@" + key, keyValue.Value);

+ 2 - 0
TEAMModelOS/TEAMModelOS.csproj

@@ -75,4 +75,6 @@
       </ResolvedFileToPublish>
     </ItemGroup>
   </Target>
+
+  <ProjectExtensions><VisualStudio><UserProperties properties_4launchsettings_1json__JsonSchema="" /></VisualStudio></ProjectExtensions>
 </Project>