Light.Data.Net 輕量級(jí) ORM 框架
Light.Data是一個(gè)輕量級(jí)的基于dotnet standard 2.0的ORM框架, 通過對(duì)實(shí)體模型類的Attribute或者配置文件進(jìn)行配置與數(shù)據(jù)表的對(duì)應(yīng)關(guān)系. 使用核心類DataContext對(duì)數(shù)據(jù)表進(jìn)行CURD的操作.
PM> Install-Package Light.Data
支持?jǐn)?shù)據(jù)庫(kù)
| 數(shù)據(jù)庫(kù) | 說明 |
|---|---|
| SqlServer | 安裝Light.Data.Mssql類庫(kù), 支持SqlServer 2008或以上 |
| Mysql | 安裝Light.Data.Mysql類庫(kù), 支持Mysql 5.5或以上 |
| Postgre | 安裝Light.Data.Postgre類庫(kù), 支持Postgre9.3或以上 |
基本操作
- 基本CURD
- 批量CUD
- 支持事務(wù)處理
- 支持?jǐn)?shù)據(jù)字段默認(rèn)值和自動(dòng)時(shí)間戳
- 支持?jǐn)?shù)據(jù)字段讀寫控制
- 查詢結(jié)果指定類或匿名類輸出
- 查詢直接插入數(shù)據(jù)表
var context = new DataContext();
// 查詢單個(gè)數(shù)據(jù)
var item = context.Query<TeUser>().Where(x => x.Id == 10).First();
// 查詢集合數(shù)據(jù)
var list = context.Query<TeUser>().Where(x => x.Id > 10).ToList();
// 新增數(shù)據(jù)
var user = new TeUser() {
Account = "foo",
Password = "bar"
};
context.Insert(user);
// 修改數(shù)據(jù)
user.Password = "bar1";
context.Update(user);
// 刪除數(shù)據(jù)
context.Delete(user);
數(shù)據(jù)匯總
- 單列數(shù)據(jù)直接匯總
- 多列數(shù)據(jù)分組匯總
- 格式化分組字段
- 匯總數(shù)據(jù)直接插入數(shù)據(jù)表
// 普通匯總
var list = context.Query<TeUser> ()
.Where (x => x.Id >= 5)
.GroupBy (x => new LevelIdAgg () {
LevelId = x.LevelId,
Data = Function.Count ()
})
.ToList ();
// 日期格式化統(tǒng)計(jì)
var list = context.Query<TeUser> ()
.GroupBy (x => new RegDateFormatAgg () {
RegDateFormat = x.RegTime.ToString("yyyy-MM-dd"),
Data = Function.Count ()
})
.ToList ();
連表查詢
- 多表連接, 支持內(nèi)連接, 左連接和右連接
- 支持查詢結(jié)果和匯總數(shù)據(jù)連接
- 連接查詢結(jié)果指定類或匿名類輸出
- 連接查詢結(jié)果直接插入數(shù)據(jù)表
// 內(nèi)連接
var join = context.Query<TeUser> ()
.Join<TeUserExtend>((x,y) => x.Id == y.Id);
// 統(tǒng)計(jì)結(jié)果連接實(shí)體表
var join = context.Query<TeMainTable>()
.GroupBy(x => new {
MId = x.MId,
Count = Function.Count(),
})
.Join<TeSubTable>((x, y) => x.MId == y.Id);
執(zhí)行SQL語(yǔ)句
- 直接使用SQL語(yǔ)句和存儲(chǔ)過程
- 支持對(duì)象參數(shù)
- 查詢結(jié)果指定類或匿名類輸出
- 存儲(chǔ)過程支持output參數(shù)
// 普通參數(shù)
var sql = "update Te_User set NickName=@P2 where Id=@P1";
var ps = new DataParameter[2];
ps[0] = new DataParameter("P1", 5);
ps[1] = new DataParameter("P2", "abc");
var executor = context.CreateSqlStringExecutor(sql, ps);
var ret = executor.ExecuteNonQuery();
// 對(duì)象參數(shù)
var sql = "update Te_User set NickName={nickname} where Id={id}";
var executor = context.CreateSqlStringExecutor(sql, new { nickname = "abc", id = 5 });
var ret = executor.ExecuteNonQuery();
評(píng)論
圖片
表情
