RavenDB Обновить вложенный документ? - PullRequest
0 голосов
/ 10 декабря 2018

Ниже приведен пример документа «Заказ», который хранится в RavenDB.В случае, если я хочу обновить только один вложенный документ, например."Product": "products / 2-A" Я хочу обновить только этот вложенный элемент. Как этого добиться с помощью клиента Raven C #?

Пример документа JSON:

{
    "Company": "companies/65-A",
    "Employee": "employees/1-A",
    "Freight": 8.53,
    "Lines": [
        {
            "Discount": 0.2,
            "PricePerUnit": 19,
            "Product": "products/2-A",
            "ProductName": "Chang",
            "Quantity": 24
        },
        {
            "Discount": 0,
            "PricePerUnit": 10,
            "Product": "products/3-A",
            "ProductName": "Aniseed Syrup",
            "Quantity": 4
        },
        {
            "Discount": 0,
            "PricePerUnit": 22,
            "Product": "products/4-A",
            "ProductName": "Chef Anton's Cajun Seasoning",
            "Quantity": 1
        }        
    ],
    "OrderedAt": "1998-05-06T00:00:00.0000000",
    "RequireAt": "1998-06-03T00:00:00.0000000",
    "ShipTo": {
        "City": "Albuquerque",
        "Country": "USA",
        "Line1": "2817 Milton Dr.",
        "Line2": null,
        "Location": {
            "Latitude": 35.1154322,
            "Longitude": -106.6710792
        },
        "PostalCode": "87110",
        "Region": "NM"
    },
    "ShipVia": "shippers/2-A",
    "ShippedAt": null,
    "@metadata": {
        "@collection": "Orders",
        "@flags": "HasRevisions"
    }
}

Пожалуйста, предоставьте ваши предложения.Спасибо

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

Звучит так, будто вы ищете патч, посмотрите на эту документацию.

https://ravendb.net/docs/article-page/4.1/csharp/client-api%2foperations%2fpatching%2fset-based

0 голосов
/ 10 декабря 2018

Если вы хотите обновить соответствующий документ "products / 2-A" , что это не элемент внутри массива "Lines" , единственное, что нужно сделать, это загрузить продукт, отредактировать и сохранитьИзменения.

Если вы хотите обновить элемент внутри «Линий», я предлагаю вам понять, как работает RavenDB (или, в целом, как работают документно-ориентированные базы данных).Сущность полностью сохраняется как документ.Тогда вам нужно только загрузить и отредактировать элемент в списке и сохранить «Порядок» с помощью session.SaveChanges ().

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