以前在看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??