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