Azure cosmosdb 将对象转换为.Net Core中的DocumentDb文档
我有下面的代码,它根据employee类型的对象的模型接收对象,我想将其转换为DocumentDB文档,然后发布到数据库。 我将如何进行转换Azure cosmosdb 将对象转换为.Net Core中的DocumentDb文档,azure-cosmosdb,asp.net-core-2.0,document-database,Azure Cosmosdb,Asp.net Core 2.0,Document Database,我有下面的代码,它根据employee类型的对象的模型接收对象,我想将其转换为DocumentDB文档,然后发布到数据库。 我将如何进行转换 [HttpPost] public async Task Post([FromBody]Employee employee) { using (_logger.BeginScope("Post employee")) { try
[HttpPost]
public async Task Post([FromBody]Employee employee)
{
using (_logger.BeginScope("Post employee"))
{
try
{
// convert employee to Document??
await _documentDbRepository.CreateItemsAsync(document);
}
catch (Exception e)
{
_logger.LogError(e.Message);
throw;
}
}
}
似乎您正在使用常规Cosmos库之上的自定义层,该库已硬编码为仅接受
文档
。Microsoft提供的库能够插入任何通用对象,并在插入时使用默认JSON序列化将其转换为文档。将自定义存储库上的签名更改为接受对象
而不是文档
,应该可以解除阻止。是否明确要求您传入文档
?这似乎是您对实际DocumentClient的某种自定义抽象,它能够获取几乎任何对象
,并使用默认JSON序列化将其插入Cosmos CreateItemsAsync目前需要一个文档,那么,您的意思是它可以接受“对象”类型,无论它是文档还是基于模型的自定义对象,这都可以工作?什么是\u documentDbRepository
?它听起来像是您在上面构建的自定义层。如果它是硬编码的文件,那么你必须尊重这一点。常规DocumentClient可以接受任何对象,而不仅仅是文档。将其更改为在对象中接受,因此只要我为传入的每个对象创建一个新的id guid,它就可以正常工作。如果你想把你最初的评论作为答案,我会接受的,谢谢