以前在看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??
Q2 请去GOOGLE iqueryable v.s. ienumerableQ4. 可以,但要自己建 model class(你要的字段的物件)Q1 GOOGLE: entity framework execute sql command
所以说Q1就是只能用ExecuteSqlCommand(...)囉??
作者:
async (异步)
2016-09-20 12:37:00Q1Q1有Extensions, Q3Q4看你程式怎么写^Q1Q2
作者:
f124 (....)
2016-09-20 12:44:00那个模型更新速度真的不可以忽视 用过一次就不想用第二次了.
作者:
allenxxx (fufuxxx)
2016-09-20 13:00:00我都写在procedure
作者:
yyc1217 (somo)
2016-09-20 14:29:001.要看数量 太大的话下SQL真的比较快你的问题和实作比较有关 可以看一下hibernate的文件范例程式码也比较多
作者:
atpx (秋雨的心情)
2016-09-20 16:36:00单笔增删改查很方便啊
1. Where select 出物件后,改完所有的物件想 update的值,call SaveChanges 后就会 update 刚刚所改过的所有内容4. 可以用 NotMapped attribute