从db中删除一个特定的列表对象

时间:2014-05-10 17:23:14

标签: asp.net-mvc ravendb

我在RavenDB中应该是一个简单的任务有困难。 知道如何以这种方式删除Raven中的文档

Session.Delete("Artist/1")

现在,我不打算删除整个文档。我只想删除其中一个 "Album"。

中的列表对象
Id: Artist/1
  "Artist": 
  "Image": "imgOfArtist",

  "Album": [
    {
      "Id": "1",
      "Title": ""
      "AlbumCover": "linkToCover"
    },
    {
      "Id": "2",
      "Title": ""
      "AlbumCover": "linkToCover"
    }
  ],

如何做到这一点?在我看来,一个好的开始就是加载这样的文档:

var theDoc = Session.Load<AllArtists>("Artist/1");

那么也许我应该做这样的事情:

var Todelete = theDoc.Albums.Where(o => o.Id == 1);

Session.Delete(Todelete);

这给了我以下错误: System.Linq.Enumerable + WhereListIterator`1 [XXXXXXXXX.Albums]与会话无关,无法删除未知实体实例

1 个答案:

答案 0 :(得分:2)

您只需删除文档值。

var artist = Session.Load<AllArtists>("artists/1");
artists.Albums.RemoveAt(3);
Session.SaveChages();