2016-10-27 4 views
-1

Я пробовал найти ответ везде, но я предполагаю, что я делаю что-то неправильно, но не могу понять, что.LiteDB не возвращает никаких данных при выполнении запросов

У меня есть структура, называемая Genre. Genre имеет id и name.

public struct Genre 
{ 
     public int Id { get; set; } 
     public string Name { get; set; } 
} 

я заполнить файл DB правильно и мой .db файл выглядит следующим образом (происходит от публичного API):

> db.MoviesGenres.find 
[1]: {"_id":12,"Name":"Adventure"} 
[2]: {"_id":14,"Name":"Fantasy"} 
[3]: {"_id":16,"Name":"Animation"} 
[4]: {"_id":18,"Name":"Drama"} 
[5]: {"_id":27,"Name":"Horror"} 
[6]: {"_id":28,"Name":"Action"} 
[7]: {"_id":35,"Name":"Comedy"} 
[8]: {"_id":36,"Name":"History"} 
[9]: {"_id":37,"Name":"Western"} 
[10]: {"_id":53,"Name":"Thriller"} 
[11]: {"_id":80,"Name":"Crime"} 
[12]: {"_id":99,"Name":"Documentary"} 
[13]: {"_id":878,"Name":"Science Fiction"} 
[14]: {"_id":9648,"Name":"Mystery"} 
[15]: {"_id":10402,"Name":"Music"} 
[16]: {"_id":10749,"Name":"Romance"} 
[17]: {"_id":10751,"Name":"Family"} 
[18]: {"_id":10752,"Name":"War"} 
[19]: {"_id":10770,"Name":"TV Movie"} 

До сих пор так хорошо, не так ли? Теперь проблема заключается в том, что я пытаюсь снова использовать эти данные для использования в других местах. У меня есть метод, который должен возвращать имя, но это не так.

public static string GetGenre(int Id) 
     { 
      LitePlatform.Initialize(new LitePlatformFullDotNet()); 

      using (var Db = new LiteDatabase(Database.DataFile)) 
      { 
       var Collection = Db.GetCollection<Genre>("MoviesGenres"); 

       Genre genre = Collection.FindOne(x => x.Id == Id); 

       return genre.Name; 
      } 
     } 

Когда я поставил точку останова, genre имеет значения от id = 0 и name = null. То же самое происходит, когда я делаю статический вызов, например Collection.FindOne(x => x.Name == "Animation")

Что мне не хватает?

ответ

0

Попробуйте добавить [BsonId] до public int Id { get; set; }. Кроме того, я думал, что есть проблемы с запросами в структурах. Вместо этого вы можете использовать класс.