各位大大好 小弟最近在學習前端搭配後端做CRUD的基礎(Angular + MS SQL)目前CRUD的功能都已經可以正常運作,WebAPI 是使用 C# Entity Framework,以上都是查詢Google或是Youtube邊看邊學習來的,遇到的問題是如果遇到SQL的查詢語法例如distinct, join, group by等等,要做資料篩選的時候要從前端著手還是後端呢? 後端是使用LINQ是嗎??
@@ 搞不太清楚 還請大神們解惑
查詢語法裡面有要查詢的關鍵字譬如where後面的條件,當然是前端送出的,然後在後端和distinct, join, group by等關鍵字組合成完整的查詢後吐出資料送回給前端,這是一般的CRUD,SQL injection就是前端亂塞資料產生的安全問題,用了Framework不需要自己組SQL語法,會適當的處理前端資料,而且不會被欄位名稱跟資料型態弄得很頭大,但是背後運作還是跟一般CRUD一樣。
要做資料篩選的時候要從前端著手還是後端呢
我知道很多喜歡一次傳全部的資料然後再使用前端filter來過濾
但是你資料表有10萬甚至100萬筆資料時
難道每次進入時就要讀取這麼大量的資料嗎?
你的Server或資料庫會掛掉吧....
請一定要從後端篩選完資料....
後端是使用LINQ是嗎??
EF使用LINQ沒錯
謝謝 大神的解惑 看來要再多學習EF LINQ的語法
小康
還有LINQ不是只有EF能用
只要有實作IEnumerable
的物件都行
例如List<T>
, Dictionary<T,T>
早期的asp.net寫法很喜歡這樣搞,程式好寫,但是效能很差
正常來講,都不可能在前端丟sql語法進來的。
因為這樣做會有很大的安全性問題。
畢竟所謂的前端,就是在客戶那邊運行的東西為主。是可被修改的。
當然這點要先給你了解何謂「前端」何謂「後端」才行。
因為我曾經教過一個很另類的解答方式。
寫給會員用的程式就是前端,寫給管理者用的就是後端。
你因該不會這樣解釋吧。
Angular 是個前端框架碰不到資料庫的,
跟資料庫做交涉是後端的API C# Entity Framework
不管簡單來是複雜的SQL查詢/更新/刪除都是在後端
您可新增新的API的action name來處理新的需求(可能處理到比較複雜的sql或邏輯)