mongoDB C# driver 2.0 get all documents


0

Здравейте,

Опитвам се да взема всички документи от колекция и да ги върна като IEnumerable<ProductCategory>. Дава ми грешка при конвертирането на BsonDocument-а. Моля, някой да помогне.

public async Task<IEnumerable<ProductCategory>> getAllCategories()
        {
            var client = new MongoClient("mongodb://localhost");
            var database = client.GetDatabase("test");
            var collection = database.GetCollection<BsonDocument>("productcategory");

            var documents = collection.Find(_ => true).ToListAsync();//.ContinueWith(e=>e.Result.AsEnumerable());
            documents.Wait();
            var b = documents.Result.AsEnumerable();
            IEnumerable<ProductCategory> ie = (IEnumerable<ProductCategory>)b;
            return ie;
        }




Отговори



0

Здравейте,

Ако имате нужда да ползвате драйвера на MongoDB, можете да реферирате към:

https://github.com/kalina-stoilova/MongoDB-2.0-driver-and-MVC

Поздрави!


от kalina_sf (192 точки)


0



3

Здравей, 

не мисля, че можеш директно да кастваш колекция от BsonDocument-и към колекция от твоя тип. Имаш 2 варианта: 

  • да десериализираш при положение, че полетата на твоя BsonDocument могат да се мапнат към полетата на твоя обект
  • ако структурата на документа е различна от структурата на твоя клас, ще трябва да си направиш някакъв TypeConverter или да си генерираш всеки обект поотделно като достъпваш съответните полета на документа

Прегледай следните линкове, дано ти помогнат :)

http://stackoverflow.com/questions/9478613/how-to-deserialize-a-bsondocument-object-back-to-class

http://stackoverflow.com/questions/24375928/how-to-convert-a-bsondocument-into-a-strongly-typed-object-with-the-official-mon


от icom85 (50 точки)