簡體   English   中英

如何將父子表傳遞給我的視圖

[英]How pass a parent child table to my view

我的數據庫中有一個Evolution進展的父子表

 EvolutionID   ParentID  otherFields
 A0              NULL      *
 A1              A0        *
 A2              A1        *
 B0              NULL      *
 B1              B0        *
 B2              B1        *

我需要顯示在我的asp.net-mvc頁面中,如下所示:

 -------------------------------------
 |  A0       |  A1       |  A2       |
 |  field.*  |  fields.* |  fields.* | 
 -------------------------------------
 |  B0       |  B1       |  B2       |
 |  field.*  |  fields.* |  fields.* | 
 -------------------------------------

我現在能做的是先讀取parentID = null的Evolutions

 A0
 B0

然后使用函數從db提取子對象,為每個列表創建一個列表:

  List<Evolution> A0 = GetEvolutionListFor ('A0');
  List<Evolution> B0 = GetEvolutionListFor ('B0');

最后在ViewBag中傳遞列表

  List<List<Evolution>> EvolutionList = New List<List<Evolution>>() {
        A0, A1 };
  ViewBag.Evolutions = EvolutionList ;

我的顯示沒有問題,我可以創建一個Evolution模板以在每個表單元格中呈現對象。

我的問題是將數據帶入模型的最佳方法是什么。

現在是一個查詢以帶出根節點,另一個查詢是每個節點以帶出列表。

我是否應該一次檢索所有行並在客戶端應用程序上構建列表。 還是有一種方法可以直接從數據庫中檢索該數據?

假設可以將所有記錄同時保存在內存中,則應該對所有對象進行一次查詢,然后在內存中構建數據結構。 假設您使用的是Entity Framework,並且具有Parent關系,則可能會發生以下情況:

List<Evolutions> evolutions; 
using (var context = new MyContext()) {
    evolutions = context.Evolutions.Include( e => e.Parent);
}

然后,您將在內存中構建數據結構。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM