我正在创建我的第一个实质性.NET MVC应用程序。我遇到了一个问题,我不太确定正确的方法。
在我的应用程序中,我有一个相当大的数据库。对于许多功能,我需要从最多5个表中选择数据并将其发送回视图,我不太确定如何进行操作,因为视图采用模型或视图模型?
我非常了解View Models的概念,但每次我需要从多个表发送数据时才创建一个唯一的解决方案吗?如果是这样,任何人都可以告诉我做这件事时的最佳做法
提前感谢您提供任何帮助
答案 0 :(得分:1)
是的,你必须拥有每个视图的视图模型。我处理大约600个视图的应用程序,我们尝试重新循环视图模型,它最终流下了眼泪。现在每个视图都有一个模型(主要是)。
要从多个表发送数据,您需要在表上运行联接并选择视图模型。
这里我假设您使用实体框架:
public class ComplexViewModel
{
public String Name { get; set; }
public String Category { get; set; }
public String Level { get; set; }
}
var db = new MyDbContext();
var result = from name in db.Names
join category in db.Categories on name.CategoryId equals category.CategoryId
join level in db.Levels on category.LevelId equals level.LevelId
select new ComplexViewModel()
{
Name = name.Name,
Category = category.CategoryName,
Level = level.LevelName,
};
return result.ToList();
可以找到更多联接示例recommended to review.