首页 > 解决方案 > 从表中获取单行并在第二个表上加入并在详细信息视图中显示

问题描述

我有一个表,其中一个组件是汽车 ID,而在 bTable 中有汽车名称。现在我有一个Tables id。在控制器中以默认方式我们这样做

 public ActionResult Details(int? id)
{
var aObject= db.aTable.Find(id);
return View(aObject);

我们使用 aTable 模型类生成“详细信息”视图。

但在这种情况下,我将看到我将只显示汽车 ID 而不是名称的视图。而且我想在查询 aTable 时加入 bTable 并且在视图中我想显示汽车名称文本。

为此,我必须创建新的模型类。我已经做到了。但是我如何使用实体框架执行单对象查询并传输对象来查看?

    a table is 
   int aID
   string aName
   int carID

    b talbe is
   int bID
   string bcarName


 public class ModifiedaTableModel
{
        [Key]
        [Required(ErrorMessage = "aIDis required.")]
        public int aID{ get; set; }
        [Required(ErrorMessage = "aName required.")]
        public string aName{ get; set; }
        [Required(ErrorMessage = "carName required.")]
        public string carName{ get; set; }
}

标签: c#listentity-frameworkjoinmodel

解决方案


如果您CarIDbID,请执行以下操作:

var modifiedATableModel = (from a in aTable
                          join b in bTable
                          on a.carID equals b.bID
                          select new ModifiedaTableModel
                          {
                              aID = a.aID,
                              aName = a.aName,
                              carName = b.bcarName
                          }).FirstOrDefault();

推荐阅读