0

尝试从默认 RavenDB 数据库加载专辑文档时收到 FormatException:

     using (var session = _documentStore.OpenSession())
     {         
        var album = session.Load<Album>(500);
        //....
     }

数据库中的专辑 JSON 文档如下所示:

{
 "AlbumArtUrl": "/Content/Images/placeholder.gif",
 "Genre": {
   "Id": "genres/10",
   "Name": "Classical"
 },
 "Price": 8.99,
 "Title": "The Best of Beethoven",
 "CountSold": 0,
 "Artist": {
   "Id": "artists/203",
   "Name": "Nicolaus Esterhazy Sinfonia"
 }

}

我的内存中实体专辑类如下所示:

public class Album
{
  public long Id { get; set; }
  public string AlbumArtUrl { get; set; }
  public DenomralizedGenre Genre { get; set; }      
  public decimal Price { get; set; }
  public string Title { get; set; }
  public int CountSold { get; set; }
  public DenomralizedArtist Artist { get; set; }      
}

public class DenomralizedGenre
{
   public int Id { get; set; }
   public string Name { get; set; }
}

public class DenomralizedArtist
{
   public int Id { get; set; }
   public string Name { get; set; }
}

我在这里做错了什么?

4

1 回答 1

1

制作所有的 ID 字符串。你有它们作为int和long。在 RavenDB 中,ID 是字符串。

作为字符串的 Id 在 RavenDB 中是 Album/24。类名称或类型加上 HiLo 值(由客户端工具创建)构成 Id。

于 2012-05-13T01:45:32.800 回答