2016-10-27 7 views
-1

私はどこでも答えを見つけようとしましたが、私は何か間違っていると思っていますが何が分かりません。質問を実行するときにLiteDBがデータを返さない

私はGenreという構造体を持っています。 Genreは、idnameです。

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

(パブリックAPIから来ている)私は適切にDBファイルを読み込むと、次のように私の.dbファイルを検索します。これまでのところ

> 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 = 0name = nullを持っています。同じような静的な呼び出しを行うと同じが発生しますCollection.FindOne(x => x.Name == "Animation")

私は何が欠けていますか?

答えて

0

の前にpublic int Id { get; set; }を追加してみてください。また、構造体に関するクエリの問題があると考えました。代わりにクラスを使用することもできます。

関連する問題