.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");