Создание нескольких объектов внутри одного документа - PullRequest
0 голосов
/ 06 июля 2011

Новичок, работающий с 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 ]

2 голосов
2 голосов
/ 06 июля 2011

Вы можете попробовать это:

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 будет вашим совокупным корнем, то есть частью, которую вы загружаете / сохраняете из базы данных и работаете напрямую с *. 1005 *

Удачи!

0 голосов
/ 07 июля 2011

TheatreViewModel должен иметь коллекцию Movie, например:

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

Затем в действии Post:

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