SmartSql 常見問題


常見問題

為什么不支持 Linq?

SmartSql 希望 開發人員更多的接觸 Sql ,獲得絕對的控制權與安全感。所以目前沒有計划支持 Code First 編程模式。

我想好了Sql怎么寫,然后再來寫Linq,完了可能還要再查看一下Linq輸出的Sql是什么樣的,這真是糟糕的體驗。要想對Sql做絕對的優化,那么開發者必須對Sql有絕對的控制權。另外Sql本身很簡單,為何要增加一層翻譯器呢?

Codefirst 一個美好,卻不切實際的想法。

對SmartSql很感興趣,不知從何開始?

請閱讀示例項目:https://github.com/Ahoo-Wang/SmartSql-Starter

SmartSql支持哪些數據庫?

只要是實現了ADO.NET的數據庫驅動的數據庫均支持,您只需要安裝好對應的驅動即可。

SmartSql是否支持多數據庫?

支持,可以通過配置引入多個數據庫實例:

var sqlServerMapper = MapperContainer.Instance.GetSqlMapper("SmartSqlMapConfig-SqlServer.xml");
var mySqlMapepr = MapperContainer.Instance.GetSqlMapper("SmartSqlMapConfig-MySql.xml");

SmartSql性能如何?

SmartSql的性能與Dapper是保存同一級別的≈原生手寫(另外多個其他ORM在自己的測試報告中寫明比Dapper性能還高,請同學們保持好奇),文檔中的 SmartSql 性能對比測試報告是開放了源代碼的,任何對於性能感興趣的同學均可以clone源代碼自己跑一遍性能測試。自己Run的性能測試才是真的測試!

SmartSql可用性如何?

SmartSql 已歷經1年多的線上數十個微服務場景驗證,其性能、可用性、生產力是得到驗證的。另外SmartSql已入選微軟官方推薦的awesome(https://github.com/quozd/awesome-dotnet#orm)。

對於簡單CURD配置

作者還開源了一個代碼生成器項目:SmartCode: https://github.com/Ahoo-Wang/SmartCode ,可以使用SmartCode生成解決方案,包括所有CURD操作的XML/Entity/IRepository!

為什么選擇Xml作為配置語法

Xml 的標簽語法用起來會比較靈活. 比如 篩選標簽,嵌套復用,可讀性.
復雜查詢場景用起來會非常舒爽,可讀性也會比較好,代碼層面不需要做任何處理,全部交給Xml .

集群場景如何使用獲得緩存一致性

SmartSql提供了Redis緩存插件,可通過NuGet安裝:

Install-Package SmartSql.Cache.Redis

集群場景中Sql配置很多Copy怎么辦

SmartSql 提供了 ZooKeeper配置插件,通過NuGet安裝:

Install-Package SmartSql.ZooKeeperConfig
  • 另外作者還開源了ZooKeeper節點管理工具:ZooKeeper-Admin,可直接通過該管理工具直接配置. 關於ZooKeeper-Admin:
  • 使用 Asp.net Core 編寫
  • Docker安裝:
docker pull ahoowang/zookeeper.admin
docker run --name zooAdmin -p 80:80 ahoowang/zookeeper.admin
  • 本地安裝
git clone https://github.com/Ahoo-Wang/ZooKeeper-Admin.git
dotnet run

我之前使用過MyBatis,感覺SmartSql有種似曾相識的感覺

是的,SmartSql編程模型多處借鑒了MyBatis,如果你之前使用過MyBatis,那么SmartSql將是你更好的選擇,因為你幾乎不需要有任何編程方式的轉變就可以直接上手,並且擁有跨平台,高性能,以及眾多你插件的支持.

手寫Xml 很痛苦是否有智能提示

SmartSql 提供了Xml架構文檔,可以獲得輸入智能提示的體驗:
智能提示


免責聲明!

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



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