台灣最大程式設計社群網站
線上人數
1152
 
會員總數:246133
討論主題:189712
歡迎您免費加入會員
討論區列表 >> C# >> 資料庫 SQL Query 建購
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
資料庫 SQL Query 建購
價值 : 92 QP  點閱數:244 回應數:4
樓主

bon
門外漢
0 24
614 45
發送站內信

各位先進好

我一直以來要存取資料庫,在C#端都是用字串建構SQL Query,例如"SELECT field FROM table",但資料庫的欄位名稱如果改變,要找出哪些字串需要跟著修改實在麻煩。
我想過或許可以把每個資料表建成static class,以const string保存每個欄位名稱,但總感覺這樣蠻奇怪的。
請問現在大家要建構SQL Query,除了用字串以外是不是有其它技巧能夠讓資料庫和C#端的資料表結構同步?

搜尋相關Tags的文章: [ sql query ] ,
本篇文章發表於2020-09-29 11:32
1樓
最有價值解答

春天
檢舉此回應
寫一個程式
去DB撈取所有Table及Filed Name
把撈取的資料轉換成定義cs檔
然後相關欄位名稱也都改一改
人可以做的,程式大部份都能做
本篇文章回覆於2020-10-08 09:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

bon
檢舉此回應
謝謝春天的回覆,看起來是可行的方案。
後來我查到Entity Framework搭配LINQ的方法,我在想是不是應該也會有類似的技術,可以直接mapping資料表格式變成程式可呼叫的形式,就像春天說的cs檔。
本篇文章回覆於2020-10-08 10:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

春天
檢舉此回應
ORM 據我所知大多是使用反射相關技術去Mapping Table Field與Class Property
資料庫改的話Class Property名稱也要跟著變,Class Property一變,有參考到的相關地方一樣都要變
所有些人會寫Interface當做Adapter把資料庫欄位與業務邏輯解耦
高耦合(這邊是欄位名稱的高耦合)情況下,遇到修改就是這麼麻煩
要馬就是寫工具程式利用工具處理
不然就想辦法解耦

本篇文章回覆於2020-10-08 11:04
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

bon
檢舉此回應
謝謝春天的解說,之前對這件事都一知半解,連問題怎麼形容都不知道。
Today I learned: 耦合(Coupling)、內聚(Cohesion)。去耦合(decoupling)
本篇文章回覆於2020-10-08 13:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.