第一篇文章在這裏。我對編程非常陌生,並且我是MVC和實體框架的新成員。我有一個問題,涉及到很多細節和我試過的很多代碼,但在我把所有這些都放下之前,我想我會問一個問題,看看我是否從右邊接近問題範例。將多個表格組合成自定義視圖模型
我工作的一個項目,其中我的團隊與一個MVC的Web應用程序替代基於接入的桌面應用程序。我們有一個與多個其他表有一對多關係的父表,並且我們已經將該模式作爲mdf文件引入到我們的項目中,並且迄今爲止都試圖首先執行這個數據庫。主表的
的主鍵,也就是說,客戶ID。所有的子表都有CustomerID作爲外鍵。該應用程序需要做的是顯示來自所有不同表格中的選定單元格的數據。
我試圖攻擊這個的方式是我創建了一個模型類,其中只包含需要顯示的列,然後在控制器中查詢數據庫的CustomerID上的一系列左外連接,選擇我想要的列,然後填充我在select子句中創建的自定義模型的單個實例。然後我將該模型傳遞給View。
基本的問題,我知道,但就是一般的過程,是最好的?或者我需要以不同的方式思考這個問題?
這聽起來似乎是合理的顯示視圖。對於創建或更新視圖,您將需要包含子集合的不同模型。如果您使用EF,則不需要連接 - 您可以使用包含語法熱切地獲取所需內容:_context.Customers.Include(c => c.Invoices).Include(c => c.Addresses)等等可以使用像Automapper這樣的工具將實體數據移動到模型中。 –
謝謝@Steve!我很欣賞這個快速評論。包括看起來會有幫助,並感謝關於創建和查看不同模型的頭像。 –
雖然它不是一般的最佳實踐,但您可以將實體類與所有「Include」直接傳遞給您的視圖。對於CRUD應用程序來說,它將工作得很好 – ranquild