天天看點

控制器中擷取獨立的多表資料

開發工具與關鍵技術: VS , MVC ;

作者:劉佳明

撰寫時間:2019年 7 月 2 日

本篇文章需要介紹一個控制器中擷取到多個表格的資料,并且以一個對象的格式傳輸到頁面中,表與表之間互不影響,

控制器中擷取獨立的多表資料
控制器中擷取獨立的多表資料
控制器中擷取獨立的多表資料

本次案例中我們需要完成的效果呢 就是查詢出一個單據表格,點選單據的表格行,就能夠擷取目前行的一個ID,在通過傳遞ID到控制器中查詢出來個以上截圖明細表的數,并把資料以一個集合的形式傳遞到頁面上去,友善我們擷取資料進行資料的回填,

public class Reservi
    {
        public Reservition a { get; set; }
        public List<S_ResMaintainItem> b { get; set; }
        public List<S_ResParst> c { get; set; }
        public List<S_ResOtheConsume> d { get; set; }
    }
           

首先,我們在控制器中建立一個自定義類,該類和我們平時的類不太一樣,是使用資料庫中的表格來做資料類型,S_ResMaintainItem 修理項目明細表

S_ResParst 估計材料明細表 S_ResOtheConsume 其它費用明細表

Reservition表中的中的主鍵分别在另外三個表中做外鍵,可利用Reservition的主鍵來查詢到其它表資訊;

public ActionResult BackfillODD(int ReservationID)
        {
            var List = (from tb in myModels.S_Reservation
                        where ReservationID == tb.ReservationID
                        select new Reservition
                        {
                            ReservationID = tb.ReservationID,//預約ID
                            MaintainSortID = tb.MaintainSortID,//維修類型ID
                            VehicleModelID = tb.VehicleModelID,//車型ID
                            ReceptionID = tb.ReceptionID,//接車ID
                            ReservationNumber = tb.ReservationNumber,//預約單号,
                            ljMaintainNumber = tb.ljMaintainNumber,//對應的維修單号,
                            StrortDateOne = tb.StrortDate.ToString(),//開單日期,
                            ReservationDateOne = tb.ReservationDate.ToString(),//預約維
                        }).Single();
            var listItem = myModels.S_ResMaintainItem.Where(m=>m.ReservationID == ReservationID).ToList();
            var listResParst = myModels.S_ResParst.Where(m=>m.ReservationID == ReservationID).ToList();
            var listOthe = myModels.S_ResOtheConsume.Where(m => m.ReservationID == ReservationID).ToList();
            Reservi das = new Reservi()
            {
                a = List,
                b= listItem,
                c= listResParst,
                d= listOthe,
            };
            return Json(das, JsonRequestBehavior.AllowGet);
        }


           

Retur傳回的資料截圖如下:

控制器中擷取獨立的多表資料

繼續閱讀