新手,使用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();
}
答案 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)
执行此操作的正确方法是使用DenormalizedReference:
答案 2 :(得分:0)
TheaterViewModel应该有一个Movie集合,如下所示:
Public List<Movie> Movies {get; set;}
然后在你的邮政行动中:
foreach(var movie in input.Movies)
{
//Additional code here...
}