作者wind681201 (阿风~~)
看板C_Sharp
标题[问题] 关於物件导向及MVC的连线问题
时间Thu Sep 26 22:31:28 2013
各位大大,这个问题在我心里一直困扰很久了,虽然也做过测式,但还是不太了解。
需求:从资料库中,以英文名称对应中文姓名,例:传入jack 得到 大明。
做一个class 其中function来让程式呼叫
状况一:
不使用MVC的状况下,在gridview中的,RowCreated的事件中,
呼叫这个class,假设有十列,若这样对应的话,在class中就会产生十次连
线去做对应这件事?
状况二:
用MVC的状况下,在controller中,若以linq来做
例如: var c = from v in aaaa
select {.chiname = getchiname(row("english"))}
请问这样的写法下,假设资料一样十行,也会产生十次连线吗?
问题,其实很想用一次连线去做这件事,但因为分散资料库,所以无法做关连,
linked server也遇到了sql版本不同,效能很惨的状况,所以得分散,不知道
各位是怎麽解决这样的事的,这样若有十个人用,就会产生100次以上的连线,
很可怕。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.134.121.234
1F:推 MacPerson:答案是.... singleton module?最近书上看到给您作个参考 09/26 22:53
2F:→ wind681201:可是假如第一个是jack,第二个是marry,还是得再连一次 09/26 23:37
3F:→ soup514:singleton也是个做法 其实就是将资料load到记忆体 09/27 00:38
4F:→ soup514:每次取用就不用回db抓 但要考虑资料大小 更新频率 09/27 00:39
5F:→ soup514:资料量很大 或许可以考虑hashtable方式 没取过的才去db取 09/27 00:40
6F:→ Litfal:连线的部分,.net会用Pool的方式去管理,应该不太需要担心 09/27 08:03
7F:→ Litfal:效能的部分,则要看系统是怎麽回事...以你的情况而言,独体 09/27 08:11
8F:→ Litfal:要用快取机制你得确保资料库只有你会更新,或是容许一定的 09/27 08:12
9F:→ Litfal:误差。 09/27 08:12
10F:推 MacPerson:L大给您请教 pooling机制 假设在 connetion string 已经 09/27 22:53
11F:→ MacPerson:预设pooling 那元po所担心的连线数问题是不是就解了? 09/27 23:00
12F:→ MacPerson:因此在撰写程式时 就不需担心连线数问题.. 都交给poolin 09/27 23:01
13F:→ Litfal:我是建议先这样,Connection和DataContext保持用完即丢。 09/28 12:00
14F:→ Litfal:原PO有多资料库,会分别对应到不同的Pool,这的确会造成较 09/28 12:02
15F:→ Litfal:大的负担。 09/28 12:02