C# 如何在cosmos db C中为一个文档插入项目列表?
归还物品清单:C# 如何在cosmos db C中为一个文档插入项目列表?,c#,azure,azure-cosmosdb,azure-cosmosdb-sqlapi,C#,Azure,Azure Cosmosdb,Azure Cosmosdb Sqlapi,归还物品清单: List<string> data = new List<string>(); using (SqlConnection connection = new SqlConnection(ConnectionString)) { string strCommandtext = "SELECT CONCAT([name],'_',[Number]) FROM [newTable]"; SqlDataAdapter sqlDataAdapter
List<string> data = new List<string>();
using (SqlConnection connection = new SqlConnection(ConnectionString))
{
string strCommandtext = "SELECT CONCAT([name],'_',[Number]) FROM [newTable]";
SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(strCommandtext, connection);
DataSet ds = new DataSet();
sqlDataAdapter.Fill(ds);
foreach (DataRow drRow in ds.Tables[0].Rows)
{
controllerData.Add(drRow[0].ToString());
}
}
string demo = JsonConvert.SerializeObject(controllerData);
return demo;
但它抛出了一个错误:
{对象引用未设置为对象的实例。}
CreateDocumentSync方法仅适用于单个文档
根据您的描述,我们可以使用批量执行器库来实现这一点
Cosmos DB是一个文档存储。你的文件是什么形状的?不能只将字符串列表存储为文档。仅供参考,因为您执行的选择没有where条件,这意味着您可以从SQL数据库返回无限数量的字符串。这意味着,在一个文档中存储的数据可能超过最大2MB。我想将其存储为json格式。目前,您的代码没有做任何类似json的事情。它只是获取一个字符串列表并尝试将其存储为字符串。正如你所看到的,这是行不通的。JSON需要某种类型的键/值对结构。对于任何类型的列表,您都需要在文档中再次使用数组,无界数组是文档存储中的一种代码味道-如果超过最大文档大小,最终您会遇到麻烦。您可以提供的任何示例代码都会很有帮助:提前感谢Hanks指出文档大小我会解决它
await client.CreateDocumentAsync(UriFactory.CreateDocumentCollectionUri("databaseID", "collectionID"), demo);