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架构文档,可以获得输入智能提示的体验:

智能提示

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Timhbw博客

分享下平时我在windows平台下开发用的一些比较好的软件-Notepad++(二)

2016-03-0923:23:39 发表评论 947℃热度 Notepad++ 它是 Windows操作系统下的一套文本编辑器(软件版权许可证: GPL),...

32813
来自专栏Windows Community

About Windows 10 SDK Preview Build 17110

在 Windows Developer Day 活动同时,微软正式 Release 了 Windows 10 SDK Preview Build 17110。 ...

3544
来自专栏blackheart的专栏

[认证授权] 6.Permission Based Access Control

那么当我们得到OAuth2的Access Token或者OIDC的Id Token之后,我们的资源服务如何来验证这些token是否有权限来执行对资源的某一项操作...

22010
来自专栏GuZhenYin

一步步学习EF Core(3.EF Core2.0路线图)

前言 这几天一直在研究EF Core的官方文档,暂时没有发现什么比较新的和EF6.x差距比较大的东西. 不过我倒是发现了EF Core的路线图更新了,下面我们就...

2349
来自专栏遊俠扎彪

无线路由器(SOHO路由器/IP分享器)的常用工作模式

也叫接入点模式,也是最常见的模式,拓扑如下图。

3845
来自专栏张善友的专栏

更强悍的Silverlight: WCF RIA Services

如果你安装了 VS 2010 的 Silverlight 4 开发工具,会发现一项重量级的安装项目,WCF RIA Services,用于Silverlight...

19910
来自专栏张善友的专栏

易学易用的Windows PowerShell

Windows PowerShell 是微软为 Windows 环境所开发的 shell 及脚本语言技术,这项全新的技术提供了丰富的控制与自动化的系统管理能力;...

2136
来自专栏c#开发者

数据驱动开发For Silverlight WCF RIA1.0 三步曲

数据驱动开发For Silverlight WCF RIA1.0 三步曲 WCF RIA 1.0的正式发布,让Silverlight开发业务应用系统变得更加简...

2714
来自专栏Jerry的SAP技术分享

那些年我用过的SAP IDE

而我在SAP做的所有开发都用的是IDE而不是text editor,看来我也免不了处于鄙视链末端的结局了。

5864
来自专栏.NET开发者社区

(码友推荐)2018-07-20 .NET及相关开发资讯速递

8.基于winserver的Apollo配置中心分布式&集群部署实践(正确部署姿势)

892

扫码关注云+社区

领取腾讯云代金券