Как реализовать обработку запросов исправления odata для mongodb с использованием asp.net? - PullRequest
0 голосов
/ 01 февраля 2019

Я пишу серверную программу 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...