[問題] MVC 在view顯示其他資料庫資料

作者: airtsubasa (偽學姊)   2020-06-12 21:56:40
想請問能否提供關鍵字去實現以下內容
我可以用php做到,但mvc剛接觸…不熟
我已經有用entitiy framework,產生model了
也可以在view裡面顯示list,
但假設我要用其中一個欄位去select
其他資料庫的某個table的欄位資料,該如何實現比較恰當?
以前php做法就是把主table撈出來後,再去for loop
裡面下sql去把其他資料庫的table欄位值抓出來
謝謝!
作者: ian90911 (xopowo)   2020-06-13 15:32:00
跨資料庫? 還是只是跨表?
作者: airtsubasa (偽學姊)   2020-06-13 21:38:00
跨資料庫用ms sql 的某個欄位去查詢oracle 某個table有沒有存在這個值這兩者做法不一樣嗎?
作者: name2name2 (yang~hi)   2020-06-14 15:40:00
可以先把Sql寫出來 然後用SqlCommand去抓例如https://einboch.pixnet.net/blog/post/244229579sql寫出來 也可以看怎麼轉成EF的語法做法去抓也行
作者: airtsubasa (偽學姊)   2020-06-15 18:39:00
謝謝樓上,我後來先把這兩個table先取出變成list,再透過linq先取主list再去子查詢子list,想請問這種方式會不會有效能問題
作者: awwseed (MOTO RIDER)   2020-06-15 19:29:00
兩邊如果先撈出來到 List 代表都進記憶體了吧?如果兩邊都一千萬筆資料,那你就是先把兩千萬筆資料讀出接下來就在記憶體裡面操作了可以思考一下這功能有必要每次都全撈出來再用 LINQ 嗎?
作者: airtsubasa (偽學姊)   2020-06-15 19:45:00
我最初的想法是在view那端去做select其他資料庫欄位動作,這樣最多只做分頁數的筆數,不過不知道如何實做也不確定適不適合在這做,資料量大概是2000對2000問的方式可能蠢!謝謝回覆
作者: name2name2 (yang~hi)   2020-06-15 20:31:00
可以用JOIN的方式 先用表A的資料用WHERE 篩過再去JOIN表B 就可以一次取得條件內的表A表B資料取回AB資料到程式後 在程式內部繼續處理
作者: awwseed (MOTO RIDER)   2020-06-16 13:59:00
你的分頁如果在 Controller 做的話,可以在 return 前把分頁後的 A 資料去跨 DB 查 B資料表後組合起來再將最終結合完的結果 return View(viewModel)如果你現在是直接將 EntityFramework DB First 產出來的Model 回傳到 View 的話,看你要做一個 Partial class或是建立另一個 ViewModel 的 Class 將你需要的 A、B資料欄位都放在這個 Class 中,前台的檢視(View) 接這個Class做畫面的呈現也是可以
作者: airtsubasa (偽學姊)   2020-06-16 17:46:00
謝樓上,原來分頁後還可以處理,已照著實作ok

Links booklink

Contact Us: admin [ a t ] ucptt.com