[英]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模型生成器將定義所有連接。 如果沒有,請立即執行。 完成后,您可以通過以下方式選擇子組名稱:
直接從上下文中獲取:
context.AnimalSubGroupSet.Where(sg => sg.AnimalGroupID = requestAnimalGroupID).Select(sg => sg.Name).ToList;
從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.