看板 Soft_Job 關於我們 聯絡資訊
以前在看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
sing10407: 都可以,請看https://goo.gl/0GuwaF 09/20 12:28
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