【问题标题】:Database First with Multiple Tables with Foreign Keys in a Single View数据库优先,在单个视图中具有多个具有外键的表
【发布时间】:2016-03-05 17:15:18
【问题描述】:

我有两张表 departmentteacher 像这样:

Department 表(DeptID 为主键)

DeptID | DeptName
 1         P
 2         C
 3         M

Teacher 表(DeptID 是外键)

   DeptID | TeacherName
    1         ABC
    1         PQR
    2         XYZ

我使用数据库优先的方法从这两个表中创建了一个模型。我想在一个视图中显示两个详细信息,如下所示:

TeacherName | DeptName
    ABC          P
    PQR          P
    XYZ          C

我尝试使用脚手架创建控制器,但它会为模型中的单个表提供视图和 CRUD 操作。

有没有什么方法可以将这两个表映射到一个视图中?或者当我为数据库中的每个表使用不同的模型时是否可能(很容易实现)?

【问题讨论】:

  • 你的模型是什么,你能提供代码
  • 你能不能给出模型代码,这样我可以更好地理解你的问题,我首先知道 db
  • 我不明白当你有两个表首先使用 db 时,你是如何得到一个模型的
  • 没有问题的人花时间

标签: asp.net-mvc asp.net-mvc-5


【解决方案1】:

您必须创建 Viewmodel。

public class DepartmentTeacher
{
  public int DeptID   {get;set;}
  public string DeptName {get;set;}
  public int TeachID  {get;set;}
  public string TeachName {get;set;}
}

    using (var db = new SchoolContext())

{
                var query = (from tc in db.Teacher
                             join dp in db.Department on tc.DeptID equals dp.DeptID
                             //where st.STUDENT_ID == Customer_Id maybe you need
                             select new
                             {
                                dp.DeptName,
                                tc.TeachName

                             });

         foreach (var item in query)
                {
                    DepartmentTeacher.DeptName = item.DeptName;
                    DepartmentTeacher.TeachName = item.TeachName;
                }


}

 return View(DepartmentTeacher);

您可以使用此视图模型的每个进程。但是您必须在视图页面上描述此视图模型。

【讨论】:

    猜你喜欢
    • 2011-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-29
    • 1970-01-01
    • 2020-05-14
    • 2018-07-06
    • 1970-01-01
    相关资源
    最近更新 更多