【问题标题】:Selecting data from multiple tables in MVC在 MVC 中从多个表中选择数据
【发布时间】:2014-02-05 22:45:32
【问题描述】:

我正在创建我的第一个实质性 .NET MVC 应用程序。我遇到了一个问题,我不太确定解决问题的正确方法。

在我的应用程序中,我有一个相当大的数据库。对于许多功能,我需要从最多 5 个表中选择数据并将其发送回视图,但我不太确定如何去做,因为视图需要模型或视图模型?

我非常了解视图模型的概念,但是每次我需要从多个表发送数据时创建一个视图模型是唯一的解决方案吗?如果可以的话,谁能告诉我这样做时的最佳做法

提前感谢您的帮助

【问题讨论】:

  • 我想清楚。您已经能够从数据库中获取数据。您的问题围绕着向客户提供这些数据?
  • 嗨。是的,我已经从数据库中获取数据并将其发送到视图。我只是不确定如何从多个表中执行此操作

标签: sql-server asp.net-mvc asp.net-mvc-4


【解决方案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.找到

【讨论】:

    猜你喜欢
    • 2014-01-05
    • 2021-02-06
    • 2020-07-04
    • 2016-06-28
    • 2012-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多