輕量ORM-SqlRepoEx 重大升級
.Net平臺下兼容.NET Standard 2.0,一個實現以Lambda表達式轉轉換標準SQL語句,支持MySQL、SQL Server數據庫方言,使用強類型操作數據的輕量級ORM工具,在減少魔法字串同時,通過靈活的Lambda表達式組合,實現業務數據查詢的多樣性。
一、SqlRepoEx升級為2.0,此次升級主要變更為
1、重新組織代碼結構,以支持SQL方言;
2、增加對MySQL數據訪問支持;
3、增加通過Dapper進行數據訪問支持;
只需幾步,即可實現SqlRepoEx與
(1)、數據庫連接設置
string ConnectionString = "Data Source=(Local);Initial Catalog=Northwind;User ID=test;Password=test";
var connectionProvider = new MsSQLP.ConnectionStringConnectionProvider(ConnectionString);
MsSqlRepoFactory.UseConnectionProvider(connectionProvider);
(2)、註冊Dapper解釋器
MsSqlRepoFactory.UseStatementExecutor(new DapperStatementExecutor(connectionProvider));
MsSqlRepoFactory.UseDataReaderEntityMapper(new DapperEntityMapper());
(3)、標準SqlRepoEx數據訪問
var repository = MsSqlRepoFactory.Create<Customers>();
var result = repository.Query().Select(e => e.CustomerID, e => e.CompanyName, e => e.Address).Top(10);
(4)、在Lambda表達式轉轉上,支持復雜Lambda語法解析;
SqlRepoEx1.1的where語句只支持單一表達式: Where(c => c.Id == 9),如果使用 Where(c => c.Id == 9 && c.Id == 10 ),則會報錯;
SqlRepoEx2.0可以使用:Where(c => c.Id > 0 && c.Id < 30 && c.Remark.Contains("a"))的更自然的語法;
(5)、增加對Union操作支持
SqlRepoEx1.1不支持Union操作;
在SqlRepoEx2.0中可以
1 var repository = MsSqlRepoFactory.Create<ToDo>(); 2 var results = repository.Query().Select(e => e.Id, e => e.Task); 3 var results5 = repository.Query().Select(e => e.Id, e => e.Task) 4 .Where(c => c.Id > 0 && c.Id < 7); 5 var results6 = repository.Query() 6 .Select(e => e.Id, e => e.Task) 7 .Where(c => c.Id > 10 && c.Id < 15); 8 var results2 = results.Union(new List<UnionSql> { 9 UnionSql.New( results5,UnionType.Union ), 10 UnionSql.New( results6,UnionType.Union ) }); 11 foreach (var item in results2) 12 { 13 Console.WriteLine($"{item.Id}\t {item.Task} "); 14 }View Code
(6)、增強Join語法
var repository = MsSqlRepoFactory.Create<ToDo>();
var results1 = repository.Query()
.InnerJoin<TaskRemark>()
// 增加附加條件,如果主選擇有此屬性,則查詢本句中所設置
.On<TaskRemark>((r, l) => r.Task == l.Task, l => l.Remark);
Console.WriteLine(results1.Sql());
二、可通過Nuget獲得
(一)、MS SQL SqlServer
1、使用 Autofac 時
Install-Package SqlRepoEx.MsSql.Autofac -Version 2.0.1
2、Asp.Net Core
Install-Package SqlRepoEx.MsSql.ServiceCollection -Version 2.0.1
3、手動實例時
Install-Package SqlRepoEx.MsSql.Static -Version 2.0.1
(二)、MySQL
1、使用 Autofac 時
Install-Package SqlRepoEx.MySql.Autofac -Version 2.0.1
2、Asp.Net Core
Install-Package SqlRepoEx.MySql.ServiceCollection -Version 2.0.1
3、手動實例時
Install-Package SqlRepoEx.MySql.Static -Version 2.0.1
(三)、支持Dapper
Install-Package SqlRepoEx.Adapter.Dapper -Version 1.0.1
(四)、通用SQL
Install-Package SqlRepoEx.Normal -Version 2.0.1
(五)、案例源碼
https://github.com/AzThinker/SqlRepoEx2.0Demo
如使用中有任何問題,請告知
1、通過評論;
2、可通過電郵 [email protected];
3、有興趣的請在QQ群中參與討論、聯系作者 QQ群名稱:ATK高效開發 ,QQ群號:747049962
輕量ORM-SqlRepoEx 重大升級