作者pracinverse (改)
看板Soft_Job
標題[請益] Entity Framework (ORM)的一些問題
時間Tue Sep 20 11:56:32 2016
以前在看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??
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.228.126.248
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1474343795.A.037.html
推 sing10407: Q2 請去GOOGLE iqueryable v.s. ienumerable 09/20 12:13
→ sing10407: Q4. 可以,但要自己建 model class(你要的欄位的物件) 09/20 12:15
→ sing10407: Q1 GOOGLE: entity framework execute sql command 09/20 12:19
→ pracinverse: 所以說Q1就是只能用ExecuteSqlCommand(...)囉?? 09/20 12:23
推 async: Q1Q1有Extensions, Q3Q4看你程式怎麼寫 09/20 12:37
→ async: ^Q1Q2 09/20 12:38
推 f124: 那個模型更新速度真的不可以忽視 用過一次就不想用第二次了. 09/20 12:44
→ allenxxx: 我都寫在procedure 09/20 13:00
→ abc0922001: entity framework超好用Der 09/20 13:33
推 yyc1217: 1.要看數量 太大的話下SQL真的比較快 09/20 14:29
→ yyc1217: 你的問題和實作比較有關 可以看一下hibernate的文件 09/20 14:30
→ yyc1217: 範例程式碼也比較多 09/20 14:30
推 atpx: 單筆增刪改查很方便啊 09/20 16:36
推 joe791023: 1. Where select 出物件後,改完所有的物件想 update 09/21 23:20
→ joe791023: 的值,call SaveChanges 後就會 update 剛剛所改過的 09/21 23:20
→ joe791023: 所有內容 09/21 23:20
推 joe791023: 4. 可以用 NotMapped attribute 09/21 23:24
推 comesuck: 先做範例再問啦. 09/23 09:14