Bladeren bron

w完善sql

CrazyIter 5 jaren geleden
bovenliggende
commit
df543e042d

+ 8 - 2
TEAMModelOS.SDK/Module/AzureCosmosDBV3/AzureCosmosDBV3Repository.cs

@@ -1006,8 +1006,14 @@ namespace TEAMModelOS.SDK.Module.AzureCosmosDBV3
         public async Task<T> FindByIdPk<T>(string id, string pk) where T : ID
         {
             CosmosModelInfo container = await InitializeCollection<T>();
-            ItemResponse<T> response = await container.container.ReadItemAsync<T>(id: id, partitionKey: new PartitionKey(pk));
-            return response.Resource;
+            try {
+                ItemResponse<T> response = await container.container.ReadItemAsync<T>(id: id, partitionKey: new PartitionKey(pk));
+                return response.Resource;
+            }
+            catch (Exception ex) {
+                return default;
+            }
+           
         }
         public async Task<List<T>> FindById<T>(string id, bool cache = true) where T : ID
         {

+ 2 - 2
TEAMModelOS/Controllers/Syllabus/KnowledgeController.cs

@@ -313,8 +313,8 @@ namespace TEAMModelOS.Controllers
             List<Knowledge> Knowledges = await deleteDelegate1(request, builder);
             foreach (Knowledge Knowledge in Knowledges) {
                 if (Knowledge.type == 1) {
-                    List<Knowledge> knowledges = await  _cosmos.FindSQL<Knowledge>("SELECT value(c) FROM c join a in c.points where Contains(a, '"+ Knowledge.id + "') = true ");
-                    List<Resource> Resources = await _cosmos.FindSQL<Resource>("SELECT value(c) FROM c join a in c.points where Contains(a, '" + Knowledge.id + "') = true ");
+                    List<Knowledge> knowledges = await  _cosmos.FindSQL<Knowledge>("SELECT value(c) FROM c join a in c.points where c.pk='Knowledge'and  Contains(a, '" + Knowledge.id + "') = true ");
+                    List<Resource> Resources = await _cosmos.FindSQL<Resource>("SELECT value(c) FROM c join a in c.points where c.pk='Knowledge' and  Contains(a, '" + Knowledge.id + "') = true ");
                     //select value(c) from c join A0  in c.points where 1=1  and A0 =  @points0
                     foreach (Knowledge knowledge in knowledges) knowledge.points.Remove(Knowledge.id);
                     foreach (Resource Resource in Resources) Resource.points.Remove(Knowledge.id);