[问题] 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