簡體   English   中英

以一對多關系從由多個表組成的模型中獲取數據

[英]Getting data out of a model made of multiple tables in a one-to-many relationship

關於asp.net MVC模型,我有一個相對簡單的問題。

我有一個基於一對多關系鏈接的兩個表的模型。

表AnimalGroup(ID,name)

表AnimalSubGroup(ID,name,AnimalGroupID)

每個AnimalGroup具有任意數量的AnimalSubgroups。

如何遍歷每個AnimalGroup的AnimalSubGroups並獲取AnimalSubGroup.name(例如)? 我是asp.net MVC的新手,並且一直在關注各種教程,但是盡管它們非常適合設置基本應用程序並從單個表中獲取結果,但我對獲得結果的方式感到困惑來自同一模型中鏈接的幾個表。 我已經看到了對ViewModel的引用作為解決方案,但似乎ViewModel對於將來自兩個不相關表的數據放入單個View更為有用。

提前致謝。

第一。 您在數據庫中定義了外鍵嗎? 如果是,則edmx模型生成器將定義所有連接。 如果沒有,請立即執行。 完成后,您可以通過以下方式選擇子組名稱:

  1. 直接從上下文中獲取:

    context.AnimalSubGroupSet.Where(sg => sg.AnimalGroupID = requestAnimalGroupID).Select(sg => sg.Name).ToList;

  2. 從AnimalGroup獲得:

    animalGroup.AnimalSubGroups.Select(sg => sg.Name);

這段代碼可能需要調整,但不要太復雜。

也許您應該看一下LINQ的SelectMany查詢運算符。 這在一對多數據表關系上進行了子重復。 請注意,您可以鏈接SelectMany調用:

var mymanyselections = datacontext.parenttable.SelectMany(l=>l.Name).SelectMany(m=>m.Name);

這假定您在數據表中具有外鍵關系。

暫無
暫無

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

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