常见问题

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

SmartSql 常见问题的更多相关文章

  1. SmartCode 使用常见问题

    SmartCode 常见问题 SmartCode 能干什么? SmartCode = IDataSource -> IBuildTask -> IOutput => Build Ev ...

  2. C++常见笔试面试要点以及常见问题

    1. C++常见笔试面试要点: C++语言相关: (1) 虚函数(多态)的内部实现 (2) 智能指针用过哪些?shared_ptr和unique_ptr用的时候需要注意什么?shared_ptr的实现 ...

  3. SQL Server常见问题介绍及快速解决建议

    前言 本文旨在帮助SQL Server数据库的使用人员了解常见的问题,及快速解决这些问题.这些问题是数据库的常规管理问题,对于很多对数据库没有深入了解的朋友提供一个大概的常见问题框架. 下面一些问题是 ...

  4. 【腾讯优测干货分享】如何降低App的待机内存(二)——规范测试流程及常见问题

    本文来自于腾讯优测公众号(wxutest),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/806TiugiSJvFI7fH6eVA5w 作者:腾讯TMQ专项测 ...

  5. mysql数据库开发常见问题及优化

    mysql 数据库是被广泛应用的关系型数据库,其体积小.支持多处理器.开源并免费的特性使其在 Internet 中小型网站中的使用率尤其高.在使用 mysql 的过程中不规范的 SQL 编写.非最优的 ...

  6. 《PDF.NE数据框架常见问题及解决方案-初》

    <PDF.NE数据框架常见问题及解决方案-初> 1.新增数据库后,获取标识列的值: 解决方案:    PDF.NET数据框架,已经为我们考略了很多,因为用PDF.NET进行数据的添加操作时 ...

  7. MIS性能优化常见问题与方案(辅助项目组性能优化的总结贴)

    最近帮忙公司的几个项目组进行了不同方面的性能优化,发现几个项目都出现了一些共性的问题.这里写一篇文章,总结一下这几类问题,以及其对应的解决方案.方便其它项目组参考.   常见问题一:打开页面非常慢,有 ...

  8. JMeter常见问题集合

    前言 本文内容仅仅是针对Jmeter的部分功能名词的介绍和解释,以及初学者不易理解的问题的整理.部分内容来自别人做的整理,为了更好地整理自己的思路,所以可耻的整理一下发到博客上. 标题[1-6]和[参 ...

  9. NHibernate常见问题及解决方法

    NHibernate常见问题及解决方法 曾经学过NHibernate的,但是自从工作到现在快一年了却从未用到过,近来要巩固一下却发现忘记了许多,一个"in expected: <end ...

随机推荐

  1. java.lang.IllegalArgumentException异常 数据库别名问题

    java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: Path expect ...

  2. C++中memset()函数的作用

    memset()函数可以对大内存的分配进行很方便的操作(初始化),所谓“初始化”,当然是指将你定义的变量或申请的空间赋予你所期望的值, 例如语句int i=0;就表明定义了一个变量i,并初始化为0: ...

  3. linux文件的基本属性

    Linux 文件基本属性 Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限.为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规 ...

  4. ISCC 2018 Writeup

    题解部分:Misc(除misc500).Web(除Only Admin.Only admin can see flag.有种你来绕.试试看).Reverse.Pwn.Mobile Misc( Auth ...

  5. postman-----使用CSV和Json文件实现批量接口测试

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 } span ...

  6. RabbitMQ+Spring 结合使用

    1:创建一个Maven工程,pom.xml文件如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi ...

  7. ceph osd 自动挂载的N种情况

    直接上干货: ceph自动挂载原理 系统启动后,ceph 通过扫描所有磁盘及分区的 ID_PART_ENTRY_TYPE 与自己main.py中写死的osd ready 标识符来判断磁盘(及其分区)是 ...

  8. TensorFlow之CNN:运用Batch Norm、Dropout和早停优化卷积神经网络

    学卷积神经网络的理论的时候,我觉得自己看懂了,可是到了用代码来搭建一个卷积神经网络时,我发现自己有太多模糊的地方.这次还是基于MINIST数据集搭建一个卷积神经网络,首先给出一个基本的模型,然后再用B ...

  9. C#中使用Bogus创建模拟数据

    原文:CREATING SAMPLE DATA FOR C# 作者:Bruno Sonnino 译文:C#中使用Bogus创建模拟数据 译者: Lamond Lu 背景 在我每次写技术类博文的时候,经 ...

  10. 华为云(ECS)-linux服务器中-Ubuntu图形界面安装-解决root登录受限-VNCviwer/Teamviwer远程访问教程

    安装ubuntu-desktop .更新软件库 apt-get update .升级软件 apt-get upgrade .安装桌面 apt-get install ubuntu-desktop 解决 ...