Procházet zdrojové kódy

部分方法调整

zhouj1203@hotmail.com před 6 roky
rodič
revize
775066f487

+ 9 - 9
HaBookCms.AzureCosmos/CosmosDB/Implements/AzureCosmosDBRepository.cs

@@ -61,6 +61,7 @@ namespace HaBookCms.AzureCosmos.CosmosDB.Implements
             await InitializeCollection<T>();
             ResourceResponse<Document> doc = 
                 await CosmosClient.CreateDocumentAsync(UriFactory.CreateDocumentCollectionUri(_Database, t.Name), entity);
+            Console.WriteLine(doc.ActivityId);
             return (T)entity;
         }
 
@@ -77,7 +78,7 @@ namespace HaBookCms.AzureCosmos.CosmosDB.Implements
         {
             Type t = typeof(T);
             List<T> objs = new List<T>();
-            await InitializeCollection<T>();
+            //await InitializeCollection<T>();
             //查询条数 -1是全部
             FeedOptions queryOptions = new FeedOptions { MaxItemCount = -1 };
             var query = CosmosClient.CreateDocumentQuery<T>(UriFactory.CreateDocumentCollectionUri(_Database, t.Name), queryOptions).AsDocumentQuery();
@@ -108,18 +109,17 @@ namespace HaBookCms.AzureCosmos.CosmosDB.Implements
 
         }
 
-        public async Task<List<T>> FindSQL<T>(string sql)
+        public List<dynamic> FindSQL<dynamic>(string sql)
         {
-            Type t = typeof(T);
-            List<T> objs = new List<T>();
-            await InitializeCollection<T>();
-            var query = CosmosClient.CreateDocumentQuery<T>(UriFactory.CreateDocumentCollectionUri(_Database, t.Name),sql);
-            foreach (var item in query.ToList())
+            Type t = typeof(dynamic);
+            List<dynamic> objs = new List<dynamic>();
+            //await InitializeCollection<T>();
+            var query = CosmosClient.CreateDocumentQuery<dynamic>(UriFactory.CreateDocumentCollectionUri(_Database, t.Name),sql);
+            foreach (var item in query)
             {
-                Console.WriteLine(JsonConvert.SerializeObject(item));
+                objs.Add(item);
             }
             return objs;
-            //return CosmosClient.CreateDocumentQuery<T>(UriFactory.CreateDocumentCollectionUri(_Database, t.Name),sql);
 
         }
     }

+ 1 - 1
HaBookCms.AzureCosmos/CosmosDB/Interfaces/IAzureCosmosDBRepository.cs

@@ -12,7 +12,7 @@ namespace HaBookCms.AzureCosmos.CosmosDB.Interfaces
        Task<T> Update<T>(object entity);
        Task<List<T>> FindAll<T>();
 
-        Task<List<T>> FindSQL<T>(string sql);
+        List<dynamic> FindSQL<dynamic>(string sql);
 
        Task<List<T>> FindLinq<T>(Func<IQueryable<object>, object> singleOrDefault);
     }

+ 6 - 6
HaBookCms.AzureCosmosDBTest/Controllers/CosmosDBController.cs

@@ -27,7 +27,7 @@ namespace HaBookCms.AzureCosmosDBTest.Controllers
             Console.WriteLine();
             BaseActivty activty = new BaseActivty
             {
-                Id = "activity.11",
+                Id = "activity.111221",
                 Title = "报名活动",
                 Introduce = "本次活动纯属娱乐",
                 ActivityLink = "http://www.runoob.com/csharp/csharp-methods.html",
@@ -84,21 +84,21 @@ namespace HaBookCms.AzureCosmosDBTest.Controllers
 
             
             
-            await _azureCosmosDB.Update<BaseActivty>(activty);
-            return activty;
+            await _azureCosmosDB.Save<BaseActivty>(activty);
+            return activty.Id;
         }
 
         [HttpGet("find")]
         [EnableCors("any")]
         [AllowAnonymous]
-        public async Task<object> ExecuteSimpleQuery()
+        public object ExecuteSimpleQuery()
         {
 
             //_azureCosmosDB.FindLinq<BaseActivty>(  Queryable.SingleOrDefault);
             // Here we find the Andersen family via its LastName
             //return await _azureCosmosDB.FindAll<BaseActivty>();
-            string sql = "select f.Title as name from BaseActivty f where f.id = 'activity.1'";
-            return await _azureCosmosDB.FindSQL<BaseActivty>(sql);
+            string sql = "select * from c ";
+            return _azureCosmosDB.FindSQL<BaseActivty>(sql);
 
             // The query is executed synchronously here, but can also be executed asynchronously via the IDocumentQuery<T> interface
             //Console.WriteLine("Running LINQ query...");