轻量ORM-SqlRepoEx (十七)SqlRepoEx 2.30 版本更新说明
.net平台下兼容.net standard 2.0,一个实现以lambda表达式转转换标准sql语句,支持mysql、sql server数据库方言,使用强类型操作数据的轻量级orm工具,在减少魔法字串同时,通过灵活的lambda表达式组合,实现业务数据查询的多样性。
如果想找到替代ef方案,sqlrepoex是比较好的选择。
sqlrepoex已经应用于多个商业项目,通过商业应用,修正应用过程中出现的bug,同时,由于商业应用场景的复杂性,新增了部分新的功能。
sqlrepoex升级为2.30,此次升级主要变更为同型分布数据库的支持;
应用场景:
当数据位于多个数据库中时,
string test1= "datasource=127.0.0.1;username=test;password=test;database=testdb1;charset=gb2312;sslmode=none;";
string test2= "datasource=127.0.0.1;username=test;password=test;database=testdb2;charset=gb2312;sslmode=none;";
dictionary<string, string> conkeys = new dictionary<string, string>();
conkeys.add("default", test1);
conkeys.add("test2", test2);
对于asp.core 使用
services.adddappersimplesqlrepo(conkeys);
对于应用静态工厂时
var connectionprovider = new connectionstringconnectionprovider(conkeys);
mysqlrepofactory.useconnectionprovider(connectionprovider);
当使用默认构造器实例仓储时,系统使用的是key 为”default” 指定的连接,如果指定了连接的key 实例会使用指定的连接字串来连接数据库,但key不存时,系统会用key 为”default” 指定的连接字串来连接数据库。
另外,当初始化中没有指定key 为”default”,系统会使用第一个数据库字串来增加一个(如果指定有两个,那么初始完成后就有三个)
如:
conkeys.add("test1", test1);
conkeys.add("test2", test2);
系统会默认增加一个
conkeys.add("default", test1);
如下,访问的是上面设置的 key 为 test2的数据库
var repository11 = mysqlrepofactory.create<customer>("test2");