如何在ASP.net MVC实体框架中的单个视图中从两个表加入后显示记录

时间:2014-01-11 15:34:42

标签: c# asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 razor

我希望在从两个表加入后显示记录并将其显示在我最近开始处理MVC实体框架并且不知道如何操作的视图上。一个表是Employee,另一个表是Department:

部门

Dept_id
Emp_id
Dept_Name
Salary

员工

Emp_id
Emp_Name
Emp_Address
Emp_Contact

我想在单一视图中显示特定员工姓名,地址,联系方式,薪资和部门详细信息,即EmployeeDetails。我之前曾在单个表中检索过特定记录,如下所示。

 public ActionResult Index(int id)
    {
         var query = dbquery.Employee.First(c => c.Emp_id == id);
         return View(query);
    }

感谢您的回答......

1 个答案:

答案 0 :(得分:0)

您应该使用查询语法,如下所示

var query= (from x in dbquery.Employee join y in dbquery.Department on x.Emp_id equals y.Emp_id 
     where x.Emp_id==id  select new {x.Emp_id, x.Emp_name,x.Emp_Address,x.Emp_Contact, y.dept_id,y.dept_name,y.salary}).ToList(); return View(query);

它将从两个表中获取数据。现在在视图中使用以下循环

@foreach(var item in Model)
        {
            <li>item.Emp_Id</li>
            <li>item.Emp_Name</li>
            <li>item.Emp_Address</li>
             <li>item.Emp_Contact</li>
            <li>item.dept_id</li>
            <li>item.dept_name</li>
            <li>item.salary</li>
        }

最好为这些属性设计模型类,并将视图与此模型绑定