2011-07-06 64 views
0

新手,使用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"  
} 

但這不是我的目標。 ..我的目標是爲一個movieTheater創建一個文檔,其中包含多個電影信息。東西看起來像這樣...

{ 
    "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(); 

} 

回答

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將是你的總根,即加載/從數據庫保存,並直接與工作的一部分。

祝你好運!

+0

這兩個類都進入一個模型或單獨的模型s在MVC結構中。 – ZVenue

+1

這些類可以代表你的模型。當你想在視圖中顯示它時,通常會將其映射到專門的視圖模型,然後呈現視圖模型。有一個名爲AutoMapper的庫正在用於此目的(模型和視圖模型之間的映射)。 –

+0

感謝您的信息。 – ZVenue

0

TheaterViewModel應該有電影集合中這樣說:

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

然後在安置自己的行動:

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

但是我一次只添加一部電影。爲什麼我需要做一個foreach? – ZVenue

相關問題