我正在尝试使用以下包添加 cosmosdb 文档:
https://github.com/Elfocrash/Cosmonaut
api控制器是这样的:
[HttpPut]
public async Task<IHttpActionResult> PutTenant([ModelBinder(typeof(TenantModelBinder))] Tenant tenant)
{
//var provider = new MultipartMemoryStreamProvider();
//var contentType = "";
//var content = new byte[0];
//await base.Request.Content.ReadAsMultipartAsync(provider);
//if (provider.Contents.Count > 0)
//{
// contentType = provider.Contents[0].Headers.ContentType.MediaType;
// content = await provider.Contents[0].ReadAsByteArrayAsync();
//}
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["AzureStorageKey"].ToString());
// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve reference to a previously created container.
CloudBlobContainer container = blobClient.GetContainerReference(ConfigurationManager.AppSettings["certificatesContainer"].ToString());
// Retrieve reference to a blob named "myblob".
CloudBlockBlob blockBlob = container.GetBlockBlobReference("myblob");
// Create or overwrite the "myblob" blob with contents from a local file.
//blockBlob.Properties.ContentType = tenant.ContentType;
MemoryStream stream = new MemoryStream(tenant.CertificateFile);
blockBlob.UploadFromStream(stream);
var tenantStore = CosmosStoreFactory.CreateForEntity<Tenant>();
tenant.CertificatePath = blockBlob.Uri;
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
var added = await tenantStore.AddAsync(tenant);
return StatusCode(HttpStatusCode.NoContent);
}
但是我收到此错误:
Unable to resolve iD for entity of type Tenant
我的租户类:
public class Tenant
{
public string TenantId { get; set; }
public string TenantUrl { get; set; }
public Uri CertificatePath { get; set; }
public string CertificatePassword { get; set; }
public byte[] CertificateFile { get; set; }
public override string ToString()
{
return JsonConvert.SerializeObject(this);
}
}