【发布时间】:2017-11-02 19:59:38
【问题描述】:
我有以下代码,它根据其模型接收一个员工类型的对象,我想将其转换为 DocumentDB 文档,然后发布到数据库。 我将如何进行转换?
[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;
}
}
}
【问题讨论】:
-
CreateItemsAsync的签名是否明确要求您传入Document?这似乎是您对实际 DocumentClient 的一些自定义抽象,它能够获取几乎任何object并使用默认 JSON 序列化将其插入 Cosmos -
CreateItemsAsync 目前确实需要 Document,所以您的意思是它可以接受类型“对象”,无论它是 Document 还是基于模型的自定义对象,这都可以工作?
-
什么是
_documentDbRepository?这听起来像是您在顶部构建的自定义层。如果它是为 Document 硬编码的,那么你现在必须尊重它。常规 DocumentClient 可以接受任何对象,而不仅仅是 Documents。 -
将其更改为在对象中接受,因此只要我为传入的每个事物创建一个新的 id guid,它就可以正常工作。如果您想将原始评论作为答案,我会接受,谢谢
标签: azure-cosmosdb asp.net-core-2.0 document-database