在一个文档中创建多个实体

时间:2011-07-06 13:52:12

标签: c# asp.net-mvc ravendb

新手,使用MVC和文档数据库。我有一个电影课

public class Movie
{
    public string Id { get; set; }
    public string MovieName { get; set; }
    public DateTime ReleaseDate{ get; set; }
    public int NumOfShows { get; set; }  
}

现在我正在Raven DB中创建文档,每部电影一个。它看起来像这样的东西。它从MVC页面更新。我现在已成功地从MVC应用程序到Raven。

{
   "MovieName": "Wild wild west",
   "ReleaseDate": "12th Dec",
   "NumOfShows ": "5"    
}

但这不是我的目标。 ..我的目标是为一个电影院创建一个文档,其中包含多个电影信息。看起来像这样......

 {
    "TheaterId": "Hd45",
    "TheaterName" : "Blvd",

    {
      "MovieName": "Wild wild west",
      "ReleaseDate": "12th Dec",
      "NumOfShows ": "5"    
    }
    {
      "MovieName": "Shrek",
      "ReleaseDate": "12th Dec",
      "NumOfShows ": "5"    
    }
    {
      "MovieName": "Ronin",
      "ReleaseDate": "12th Dec",
      "NumOfShows ": "5"    
    }
 }

我该怎么做...非常感谢任何帮助。详细解释对我的理解非常有帮助。

更新

[HttpPost]
public ActionResult Create(TheaterViewModel input)
{
    var Theater = new Theater
    {
        TheaterId = input.Theater.TheaterId,
        TheaterName = input.Theater.TheaterName,
      // How do I get the Movies nested here, I mean updated 

    };
    _repository.Add(Theater);
    _repository.Save();

}

3 个答案:

答案 0 :(得分:2)

你可以试试这个:

public class MovieTheater
{
    public string Id { get; set; }
    public string Name { get; set; }

    public List<Movie> MoviesOnShow { get; set; }
}

public class Movie
{
    public string Name { get; set; }
    public DateTime ReleaseDate { get; set; }
    public int NumOfShows { get; set; }
}

此处,MovieTheater将是您的聚合根,即您从数据库加载/保存并直接使用的部分。

祝你好运!

答案 1 :(得分:2)

答案 2 :(得分:0)

TheaterViewModel应该有一个Movie集合,如下所示:

Public List<Movie> Movies {get; set;}

然后在你的邮政行动中:

foreach(var movie in input.Movies)
{
//Additional code here...
}