以前在看ORM framework,
只知道他是把DB中的table映射到programming language class的一種技術
因為聽說會有performance的問題,而且不用ORM也可以access DB,
所以並沒有真的下去研究它。
最近發現很多不同的framework都有內建ORM,好像已經不太能忽視ORM
所以這一陣子才開始看ORM,因為工作上比較用到C#,所以是看entity framework。
遇到幾個問題想跟大家請教:
Q1. 目前entity framework是否不支援透過類似WHERE的方式一次UPDATE/DELETE多筆資料
除非自己下ExecuteSqlCommand(...) ?? (就是直接寫DELETE\UPDATE script)
Q2. QUERY時,目前entity framework看起來有2種寫法
A) LINQ to SQL,
B) SqlQuery(...) (就是直接寫SELECT script)
我的理解是:
A) 會把2個tables中的資料撈到Application中,再作join (performance較差)
B) 會把2個tables中的資料做好join後,才傳給Application (performance較佳)
這樣的理解是否正確呢??
Q3. 其他ORM framework是否有Q1和Q2一樣的問題??
只能UPDATE/DELETE單筆
以及把data拉到application中再作join的問題
Q4. ORM framework是把database中的table映射到programming language的class
是否可以做到只映射table中的某幾個columns到class裡,不要映射全部的columns??