Mongo DB: как $ addToSet пользовательский элемент типа с помощью официального драйвера C # - PullRequest
0 голосов
/ 07 ноября 2011

У меня есть документ с массивом элементов пользовательских типов:

{
    _id: 'id',
    name: '',
    customElements: [
        { _id: 'id',
        name: 'name'}
    ]
}

В C # у меня есть соответствующие классы:

public class CustomElement 
{
    [BsonId]
    public ObjectId id { get; set; }
    public string name { get; set; }

    CustomElement ()
    {
        id = ObjectId.GenerateNewId();
    }
}

Используя официальный драйвер c #, я пытаюсь создатьОператор обновления:

var update = Update.AddToSet("customElements", new CustomElement { name = "name"});

Но он показывает, что нельзя назначить BsonValue .Как конвертировать его и $ addToSet?

1 Ответ

2 голосов
/ 07 ноября 2011

Вариант 1, с помощью методов Wrapped, поставляемых с версией драйвера 1.0:

  Update.AddToSetWrapped<CustomElement>("customElements",  
                      new CustomElement() { name = "name"); //c# driver >= 1.0

Вариант 2, преобразуйте свой класс в BsonValue самостоятельно с помощью метода расширения ToBsonDocument ().

Update.AddToSet("customElements", new CustomElement() { name = "name"}.ToBsonDocument());

Надеюсь, это поможет.

...