[请益] Entity Framework (ORM)的一些问题

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

Links booklink

Contact Us: admin [ a t ] ucptt.com