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

看板C_Sharp (C#)作者 (偽學姊)時間3年前 (2020/06/12 21:56), 編輯推噓2(2029)
留言31則, 4人參與, 3年前最新討論串1/1
想請問能否提供關鍵字去實現以下內容 我可以用php做到,但mvc剛接觸…不熟 我已經有用entitiy framework,產生model了 也可以在view裡面顯示list, 但假設我要用其中一個欄位去select 其他資料庫的某個table的欄位資料,該如何實現比較恰當? 以前php做法就是把主table撈出來後,再去for loop 裡面下sql去把其他資料庫的table欄位值抓出來 謝謝! ----- Sent from JPTT on my Asus ASUS_Z01RD. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 110.30.103.31 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1591970202.A.498.html

06/13 15:32, 3年前 , 1F
跨資料庫? 還是只是跨表?
06/13 15:32, 1F

06/13 21:38, 3年前 , 2F
跨資料庫
06/13 21:38, 2F

06/13 21:39, 3年前 , 3F
用ms sql 的某個欄位去查詢oracle 某個table有沒有存
06/13 21:39, 3F

06/13 21:39, 3年前 , 4F
在這個值
06/13 21:39, 4F

06/13 21:41, 3年前 , 5F
這兩者做法不一樣嗎?
06/13 21:41, 5F

06/14 15:40, 3年前 , 6F
可以先把Sql寫出來 然後用SqlCommand去抓
06/14 15:40, 6F

06/14 15:40, 3年前 , 7F

06/14 15:41, 3年前 , 8F
sql寫出來 也可以看怎麼轉成EF的語法做法去抓也行
06/14 15:41, 8F

06/15 18:39, 3年前 , 9F
謝謝樓上,我後來先把這兩個table先取出變成list,再
06/15 18:39, 9F

06/15 18:39, 3年前 , 10F
透過linq先取主list再去子查詢子list,想請問這種方式
06/15 18:39, 10F

06/15 18:39, 3年前 , 11F
會不會有效能問題
06/15 18:39, 11F

06/15 19:29, 3年前 , 12F
兩邊如果先撈出來到 List 代表都進記憶體了吧?
06/15 19:29, 12F

06/15 19:29, 3年前 , 13F
如果兩邊都一千萬筆資料,那你就是先把兩千萬筆資料讀出
06/15 19:29, 13F

06/15 19:30, 3年前 , 14F
接下來就在記憶體裡面操作了
06/15 19:30, 14F

06/15 19:31, 3年前 , 15F
可以思考一下這功能有必要每次都全撈出來再用 LINQ 嗎?
06/15 19:31, 15F

06/15 19:45, 3年前 , 16F
我最初的想法是在view那端去做select其他資料庫欄位動
06/15 19:45, 16F

06/15 19:45, 3年前 , 17F
作,這樣最多只做分頁數的筆數,不過不知道如何實做
06/15 19:45, 17F

06/15 19:46, 3年前 , 18F
也不確定適不適合在這做,資料量大概是2000對2000
06/15 19:46, 18F

06/15 20:15, 3年前 , 19F
問的方式可能蠢!謝謝回覆
06/15 20:15, 19F

06/15 20:31, 3年前 , 20F
可以用JOIN的方式 先用表A的資料用WHERE 篩過
06/15 20:31, 20F

06/15 20:32, 3年前 , 21F
再去JOIN表B 就可以一次取得條件內的表A表B資料
06/15 20:32, 21F

06/15 20:32, 3年前 , 22F
取回AB資料到程式後 在程式內部繼續處理
06/15 20:32, 22F

06/16 13:59, 3年前 , 23F
你的分頁如果在 Controller 做的話,可以在 return 前
06/16 13:59, 23F

06/16 14:00, 3年前 , 24F
把分頁後的 A 資料去跨 DB 查 B資料表後組合起來
06/16 14:00, 24F

06/16 14:00, 3年前 , 25F
再將最終結合完的結果 return View(viewModel)
06/16 14:00, 25F

06/16 14:01, 3年前 , 26F
如果你現在是直接將 EntityFramework DB First 產出來的
06/16 14:01, 26F

06/16 14:01, 3年前 , 27F
Model 回傳到 View 的話,看你要做一個 Partial class
06/16 14:01, 27F

06/16 14:02, 3年前 , 28F
或是建立另一個 ViewModel 的 Class 將你需要的 A、B資料
06/16 14:02, 28F

06/16 14:02, 3年前 , 29F
欄位都放在這個 Class 中,前台的檢視(View) 接這個Class
06/16 14:02, 29F

06/16 14:02, 3年前 , 30F
做畫面的呈現也是可以
06/16 14:02, 30F

06/16 17:46, 3年前 , 31F
謝樓上,原來分頁後還可以處理,已照著實作ok
06/16 17:46, 31F
文章代碼(AID): #1UuucQIO (C_Sharp)
文章代碼(AID): #1UuucQIO (C_Sharp)