[C# ] 和 EF 解耦合

作者: SuicideIwin () => print("Hello")   2023-06-28 13:25:22
為了處理案子的後端能更方便
寫了一個處理比較多功能的 .NET Standard 2.0 的工具庫
其中有個地方原本是這樣寫
https://i.imgur.com/iIKypv6.png
這個方法的目標大略是
前端打要求進來 說我要 ID 幾的某某資料
負責那種資料的控制器就會來呼叫這個方法
這個方法知道
1. 輸入物件的 ID 欄位叫什麼
2. 資料模型的 ID 欄位叫什麼
然後透過這個方法自動配對到對應資料
但因為同時想支援本地集合 LINQ 搜尋 跟 LINQ 2 Entities 搜尋
用了偷雞的方式做判定
這個專案面向的是 .Net Standard 2.0
使用 EF Core 3.1.32
今天不知道為啥突然看到
EF Core 3.1 已經 EoL 以後不會有安全性更新
想說如果未來才更新 到時候會蠻麻煩的
索性把工具庫的 EF Core 依賴拿掉
但沒有 EF, 沒辦法知道 query 是不是使用 EF 的
所以改成了不需要知道 query 來源, 可以統一一套處理方式的作法
https://i.imgur.com/kSAeZK4.png
用了比較不熟悉的 Expression
老實說有點可怕 寫的時候有種在寫黑魔法禁咒的感覺
不過能順利跑
Expression 感覺蠻好用的 除去它語法比較陌生
此外不知道效能上有沒有問題
會不會跟 reflection 是類似的東西
但總之暫時解決 EF Core 相依性的問題了==
這樣也不用擔心專案想用 EF6 的情況
作者: JenniferLope (ㄚ)   2022-06-28 13:25:00
大師
作者: EliteCaterpi (さくらみこ的綠毛蟲)   2023-06-28 13:26:00
大師
作者: medama ( )   2023-06-28 13:27:00
大師
作者: SecondRun (雨夜琴聲)   2023-06-28 13:29:00
大師 這好酷
作者: Che31128 (justjoke)   2023-06-28 13:29:00
大師

Links booklink

Contact Us: admin [ a t ] ucptt.com