Я пишу серверную программу ASP.net как API odata v4, в настоящее время использую библиотеку Microsoft.AspNet.OData и MongoDB в качестве опции базы данных.
Ниже приведен мой простой класс объектов Contact
using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;
using System;
using System.ComponentModel.DataAnnotations;
namespace ODataService.Models
{
public class Contact
{
[Key]
[BsonRepresentation(BsonType.ObjectId)]
public String _id { get; set; }
public String Name { get; set; }
public String CompanyName { get; set; }
//empty constructor must be stated to make insertion works
public Contact()
{
}
public Contact (string Name, String CompanyName)
{
this.Name = Name;
this.CompanyName = CompanyName;
}
}
}
Метод контроллера
// PATCH /odata/Products(1)
public HttpResponseMessage Patch(int key, Delta<Product> item) {
try
{
var mongoClient = new MongoClient("mongodb://localhost:27017");
var mongoDatabase = mongoClient.GetDatabase("mydb");
var mongoCollection = mongoDatabase.GetCollection<Contact>("contacts");
//What should I write here to perform the upsert using the Delta?
}
catch (Exception e)
{
return Request.CreateResponse(HttpStatusCode.InternalServerError, e.Message);
}
}
Любой может сказать мне:
1) Как использовать Дельту дляправильно реализовать запрос PATCH для Одата?
2) Как использовать дельту для выполнения действия upsert для нескольких документов в mongoDB?