關於 IFreeSql 注入,與 AspectCore 沖突的說明


FreeSql 以 MIT 開源協議托管於 github:https://github.com/2881099/FreeSql

IFreeSql 作為 ORM 頂級對象,沒有設置 NameSpace(命名空間),作者的用意是不想使用者在 .cs 文件頂部,多出一堆不必要的 using FreeSql.xxx。

最近有同學嘗試用 AspectCore 翻車了。

經過定位以及源碼調試發現,AspectCore 默認不支持 Ioc 容器內注入沒有 NameSpace(命名空間)的類型。這個問題已經向作者反饋,但是作者並不想改,他的觀點:沒有 NameSpace(命名空間)是使用者的問題。

這種情況兼容一下其實只判斷加個 if 判斷即可。

好吧,繞道而行:

方法一:自己定義帶 namespace 的類注入,包一層再注入使用。

namespace xxx
{
   public class MyClass
   {
          public IFreeSql orm {get;set;}
   }
}

方法二:修改 AspectCore 源碼

參考資料

《新人學習指引》 | 《Select》 | 《Update》 | 《Insert》 | 《Delete》
《表達式函數》 | 《CodeFirst》 | 《DbFirst》 | 《BaseEntity》
《Repository》 | 《UnitOfWork》 | 《過濾器》 | 《樂觀鎖》 | 《DbContext》
《讀寫分離》 | 《分區分表》 | 《租戶》 | 《AOP》 | 《黑科技》 | 更新日志


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM