C# 在一个文档中创建多个实体
新手,使用MVC和文档数据库。我有一节电影课C# 在一个文档中创建多个实体,c#,asp.net-mvc,ravendb,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中创建文档,每部电影一个文档。看起来像这样。它从MV
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"
}
}
我怎样才能做到这一点1.非常感谢您的帮助。详细的解释对我的理解很有帮助
更新:
[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();
}
你可以试试这个:
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; }
}
公共级电影
{
公共字符串Id{get;set;}
公共字符串名称{get;set;}
公共列表电影放映{get;set;}
}
公映
{
公共字符串名称{get;set;}
公共日期时间释放日期{get;set;}
public int NumOfShows{get;set;}
}
这里,movietweater
将是您的聚合根,即从数据库加载/保存并直接使用的部分
祝你好运 您可以尝试以下方法:
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; }
}
公共级电影
{
公共字符串Id{get;set;}
公共字符串名称{get;set;}
公共列表电影放映{get;set;}
}
公映
{
公共字符串名称{get;set;}
公共日期时间释放日期{get;set;}
public int NumOfShows{get;set;}
}
这里,movietweater
将是您的聚合根,即从数据库加载/保存并直接使用的部分
祝你好运 TheaterViewModel中应该有一组电影,如下所示:
Public List<Movie> Movies {get; set;}
TheaterViewModel中应该包含一组电影,如下所示:
Public List<Movie> Movies {get; set;}
正确的方法是使用非规范化引用:
正确的方法是使用非规范化引用:
在MVC结构中,这两个类是属于一个模型还是属于单独的模型。这些类可以代表您的模型。如果要在视图中显示此视图,通常会将其映射到专用视图模型,然后显示视图模型。有一个名为AutoMapper的库正用于此目的(模型和视图模型之间的映射)。Lidstrom:请参阅上面的评论,以获取原始帖子中的编辑。。。如何在上面的代码中添加电影数据时一个接一个地嵌套电影数据..您可以通过一个操作创建剧院。然后,您可以执行另一个操作,将电影添加到影院。这有意义吗?当你更新电影时会发生什么?您要更新同一文档的所有不同版本吗?在MVC结构中,这两个类是属于一个模型还是单独的模型。这些类可以代表您的模型。如果要在视图中显示此视图,通常会将其映射到专用视图模型,然后显示视图模型。有一个名为AutoMapper的库正用于此目的(模型和视图模型之间的映射)。Lidstrom:请参阅上面的评论,以获取原始帖子中的编辑。。。如何在上面的代码中添加电影数据时一个接一个地嵌套电影数据..您可以通过一个操作创建剧院。然后,您可以执行另一个操作,将电影添加到影院。这有意义吗?当你更新电影时会发生什么?你打算更新同一文档的所有不同版本吗?不错,我不知道这是可能的。不错,我不知道这是可能的。但我一次只添加一部电影。。为什么我需要做一个foreach?但是我一次只添加一个电影。。为什么我需要做一个foreach?