spa*_*bot 2 asp.net asp.net-core-mvc asp.net-core
这是我的第一个 ASP 项目,我真的很纠结如何将多个表连接到一个视图模型中。我有一个名为 project 的模型,它将用于创建新项目并将它们插入到数据库中。
using System;
namespace vasttPM1.Models
{
public class Project
{
public int ID { get; set; }
public string ProjectName { get; set; }
public string CreatedBy { get; set; }
public DateTime CreateDate { get; set; }
public DateTime StartDate { get; set; }
public DateTime Enddate { get; set; }
public string Installer { get; set; }
public int ProjectNumber { get; set; }
public string ProjectManager { get; set; }
public string CustomerName { get; set; }
public string CustomerPhone { get; set; }
public string CustomerEmail { get; set; }
public string ProjectType { get; set; }
public string Building { get; set; }
public string Rooms { get; set; }
public string ProjectDescription { get; set; }
public int Status { set; get; }
}
}
Run Code Online (Sandbox Code Playgroud)
我在数据库中有一个名为 ProjectStatus 的静态表,其中有一些与每个项目相关联的字段。主要是状态和百分比字段。
所以我想要做的是获取上面模型中的信息,并从 projectstatus 表中获取状态百分比,其中project.status = projectstatus.id.
然后将结果组合成一个视图模型。
这听起来很简单,但我真的很想知道如何完成这项工作。
有什么建议?
根据我的理解,您想将两张表放入一个视图模型中。为此,您需要使用所需的属性创建一个新的视图模型类。例如:
public class ProjectViewModel
{
public string ProjectName { get; set; }
public string Status { set; get; }
public int Percent { set; get; }
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用 Linq 查询将两个表连接在一起,并将它们选择到新对象中,如下所示:
var results = (from p in db.Project
join ps in db.ProjectStatus on p.Status equals ps.Id
select new ProjectViewModel()
{
ProjectName = p.ProjectName,
Status = ps.StatusName,
Percent = ps.PercentComplete
}).ToList();
Run Code Online (Sandbox Code Playgroud)
这应该为您创建一个 ProjectViewModels 列表,然后您可以在您的视图中使用它。我的某些属性或列名称可能不正确。我不得不猜测它们在您的 ProjectStatus 表中可能是什么。
| 归档时间: |
|
| 查看次数: |
3149 次 |
| 最近记录: |