当前位置: 首页 > news >正文

网站建设视频技术论坛网站建设z

网站建设视频技术论坛,网站建设z,杭州微网站建设公司哪家好,apache 配置php网站SmartSql源码#xff1a;https://github.com/Ahoo-Wang/SmartSql1|1简介动态代理仓储(SmartSql.DyRepository)组件是SmartSql非常独特的功能#xff0c;它能简化SmartSql的使用。对业务代码除了配置几乎没有侵入。可以说使用SmartSqlContainer是原始方法#xff0c;而DyRepo… SmartSql源码https://github.com/Ahoo-Wang/SmartSql1|1简介动态代理仓储(SmartSql.DyRepository)组件是SmartSql非常独特的功能它能简化SmartSql的使用。对业务代码除了配置几乎没有侵入。可以说使用SmartSqlContainer是原始方法而DyRepository自动帮你实现这些方法。DyRepository的表现是只需要定义仓储接口通过简单配置就能自动实现这些接口并注册到IoC容器中使用时注入即刻获取实现。原理是通过接口和接口方法的命名规则来获取SmartSql的xml文件中的Scope和SqlId用接口方法的参数作为Request通过xml中的sql自动判断是查询还是执行操作最后实现对ISmartSqlMapper的调用。1|2适合场景使用了仓储模式的架构仓储模式主要在DDD战术中运用用来隔离领域和数据库。DyRepository的功能需求主要是在DDD的实践中发现的目前为止已经满足DDD实践的大部分需求如果还有其他的相关需求欢迎提出Issue。类似SqlHepler的应用DyRepository可以将任意一个接口实现出查询数据库的工具CURD方法不在话下。通过接口注入更能发挥解耦的作用。1|3使用介绍下面会简单演示DyRepository与ISmartSqlMapper的使用对比。准备工作先创建一个仓储这个仓储不依赖SmartSql只是普普通通的仓储接口创建配置xml文件SmartSqlMapConfig.xml再创建xml配置文件Activity.xml放到Maps目录并且在属性面板设置为“始终复制”:准备工作完成下面就可以展示两种用法的区别。两种用法ISmartSqlMapper 用法如果不用DyRepository我们需要用ISmartSqlMapper实现这个仓储。再把实现类注册到IoC中:Dpy如果使用DyRepository我们只需配置一下IoC注册即可。注入使用使用方法就注入接口再调用接口方法了。1|4总结通过DyRepository与ISmartSqlMapper的简单对比我们就可以看出DyRepository的强大为我们省下了很多代码。当然ISmartSqlMapper自然也有它的灵活性能够在任何地方使用。但是如果没有其他的特殊需求在架构方面因为对业务代码几乎无侵入DyRepository无疑是最推荐的使用方式。本文只介绍了DyRepository默认约定的使用方法其实它还能通过各种配置项去实现更灵活的功能。详情请看下一节《DyRepository配置》。2|0DyRepository配置DyRepository的配置分为默认配置、特性配置和注册配置但是都必须配置IoC注册因为要都需要创建动态的接口实现到IoC中。2|1必须的配置:单个注册    services.AddRepositoryIUserRepository();批量注册2|2可选配置特性配置指在接口上标注特性来配置DyRepository的配置项而注册配置是指在IoC注册方法中配置下面演示一下两者的不同。Scope配置场景I{Scope}Repository是默认配置的Scope模版如IUserRepository的Scope就是User。如果是这样的接口命名风格则无需再配置。而当需要换接口命名风格如查询User的Dao层名称是IUserDao则需要配置对应的Scope。特性配置    [SqlMap(Scope User)]        public interface IUserDao{}注册配置的只要被扫描到的接口不同就可以给不同的接口配置不同的属性SqlId配置SqlId默认是取仓储接口的方法名只要方法名跟xml中的SqlId一样则无需任何配置。场景因为SmartSql的sql配置是可以动态渲染的当同一个SqlId传入不同的参数可以渲染出不同的查询条件。例如此时如果只用默认配置写两个Query(string)方法就会有同方法名同参数类型而无法重载的问题。因此此时需要接口方法名不同而通过配置去指定相同的SqlId。特性配置注册配置册配置中是通过配置一个叫sqlIdNamingConvert的委托参数来实现接口方法名到SqlId的转换方法。需要注意的是这个配置需要把AddSmartSqlRepositoryFactory和AddRepositoryFromAssembly两个方法分开原因是前几个配置中的AddSmartSqlRepositoryFromAssembly方法内部调用过AddSmartSqlRepositoryFactory如果再次调用会造成冲突。其它配置场景如果希望SmartSql只做接口实现而不侵入接口以上的注册配置基本就能满足大部分需求。但是如果需要深入使用SmartSql那么利用特性配置和一个泛型接口能得到更多额外的功能。接口方法指定Sql即直接给接口方法绑定sql无需再从xml中配置sql了但请注意参数前缀还是需要在对应的配置文件配置。即把接口方法的参数值传递给Sql渲染时指定参数名的参数例如把id的值传递给UserId继承泛型接口之后能够直接调用它里面的CURD通用方法。同步调用IRepositoryTEntity, TPrimary异步调用IRepositoryAsyncTEntity, TPrimary相关文章如何通过本地化事件正确实现微服务内部强一致性事件总线跨微服务间最终一致性SmartCode 正式开源不只是代码生成器SmartSql For Asp.Net Core 最佳实践原文地址https://www.cnblogs.com/ElderJames/p/9670296.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com
http://www.zqtcl.cn/news/325106/

相关文章:

  • 网站设计最好的公司idc网站模板源码下载
  • 网站建设历史视频制作软件有哪些
  • 加盟网站制作定制桥的设计网站建设
  • 深圳做宣传网站的公司开发电商网站多少钱
  • 自适应网站建设公司什么是网站死链
  • 自己给网站做支付接口wordpress elementor
  • 中国最新军事新闻网站优化推广
  • 有没有做3d衣服模型网站php网站开发目的
  • 东莞网站建设方案咨询wordpress易企秀
  • 漳诈网站建设免费的企业网站建设
  • 广州番禺区有什么好玩的地方优化软件有哪些
  • 面包机做面包网站wordpress获取用户注册时间
  • 福州网站建设个人兼职泰州seo排名扣费
  • 泰安北京网站建设公司个人自我介绍网页
  • 网站建设适应全屏如何自动深圳市哪里最繁华
  • 杭州网站推广公司阿里云wordpress 安装目录
  • 厦门优秀网站建设app项目开发流程
  • 工作设计室网站海外网站代理
  • 室内设计官方网站没网站怎么做cpa
  • 哪个网站做欧洲旅游攻略好wordpress编辑器字体大小
  • aspcms 手机网站wordpress 刷浏览量
  • dw网站首页的导航怎么做网站建设企业建站模板
  • 平台型网站建设网站关键词优化seo
  • 齿轮机械东莞网站建设技术支持热搜词排行榜关键词
  • 河南专业做网站网站推广优化c重庆
  • 温州网站建设钱建设工程公司网站
  • 做笑话网站全国大学生职业生涯规划大赛官网
  • 便宜购 网站建设平台推广引流怎么做
  • 怎么用记事本做钓鱼网站制作公司网页的步骤
  • 机械设备东莞网站建设智慧软文网站