我使用ado net实体数据模型从现有数据库中创建了2个数据模型。这些表相互关联。第一个表是类别表,第二个表是产品。因此,每个类别都有很多产品。我想在视图中显示类别的某些列,以及同一类别中相同的产品。我对这种简单的结构感到困惑。我离开mvc了一段时间。我需要解决这个问题。请帮忙。
答案 0 :(得分:0)
您需要使用视图模型。视图模型与MV *体系结构模式有关,用于将数据传递到视图或从视图传递数据。我将尝试用简单的术语进行解释。让我们考虑一下您有两个表:
员工
---------------------------------------
| Id | Name | Designation |
---------------------------------------
| 1 | John Doe | Software Engineer |
---------------------------------------
| 2 | John Smith | Test Engineer |
---------------------------------------
工资
----------------------------------------
| Id | EmployeeId | EmployeeSalary |
----------------------------------------
| 1 | 1 | $10,000 |
----------------------------------------
| 2 | 2 | $10,000 |
----------------------------------------
现在要访问代码中的这两个表,您已经使用ORM创建了数据实体,它将创建两个类:
Employee.cs
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
public string Designation { get; set; }
}
Salary.cs
public class Salary
{
public int Id { get; set; }
public int EmployeeId { get; set; }
public long EmployeeSalary { get; set; }
}
现在要使用这两个模型在UI上表示有意义的数据,您可以创建一个具有所有必要数据实体的ViewModel,并将其通过控制器传递给视图:
EmployeeViewModel.cs
public class EmployeeViewModel
{
public Employee EmployeeDetail { get; set; }
public Salary EmployeeSalaryDetail { get; set; }
}
EmployeeController:
public class EmployeeController
{
public ActionResult Index()
{
var model = new EmployeeViewModel();
return View(model);
}
}
对于数据实体和视图模型之间的显着差异,请进行检查; Is it possible to create view models by out of models created from database tables using entity framework DB first approach?