Light.Data 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Light.Data 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议: MIT
开发语言: C#
操作系统: 跨平台
收录时间: 2019-05-22
提 交 者: aquilahkj

Light.Data是一个轻量级的基于dotnet standard 2.0的ORM框架, 通过对实体模型类的Attribute或者配置文件进行配置与数据表的对应关系. 使用核心类DataContext对数据表进行CURD的操作.

PM> Install-Package Light.Data
支持数据库
数据库 说明
SqlServer 安装Light.Data.Mssql类库, 支持SqlServer 2008或以上
Mysql 安装Light.Data.Mysql类库, 支持Mysql 5.5或以上
Postgre 安装Light.Data.Postgre类库, 支持Postgre9.3或以上

基本操作

  • 基本CURD
  • 批量CUD
  • 支持事务处理
  • 支持数据字段默认值和自动时间戳
  • 支持数据字段读写控制
  • 查询结果指定类或匿名类输出
  • 查询直接插入数据表
var context = new DataContext();
// 查询单个数据
var item = context.Query<TeUser>().Where(x => x.Id == 10).First();
// 查询集合数据
var list = context.Query<TeUser>().Where(x => x.Id > 10).ToList();
// 新增数据
var user = new TeUser() {
    Account = "foo",
    Password = "bar"
};
context.Insert(user);
// 修改数据
user.Password = "bar1";
context.Update(user);
// 删除数据
context.Delete(user);

数据汇总

  • 单列数据直接汇总
  • 多列数据分组汇总
  • 格式化分组字段
  • 汇总数据直接插入数据表
// 普通汇总
var list = context.Query<TeUser> ()
                  .Where (x => x.Id >= 5)
                  .GroupBy (x => new LevelIdAgg () {
                      LevelId = x.LevelId,
                      Data = Function.Count ()
                   })
                  .ToList ();

// 日期格式化统计
var list = context.Query<TeUser> ()
                  .GroupBy (x => new RegDateFormatAgg () {
                      RegDateFormat = x.RegTime.ToString("yyyy-MM-dd"),
                      Data = Function.Count ()
                   })
                  .ToList ();    

连表查询

  • 多表连接, 支持内连接, 左连接和右连接
  • 支持查询结果和汇总数据连接
  • 连接查询结果指定类或匿名类输出
  • 连接查询结果直接插入数据表
// 内连接
var join = context.Query<TeUser> ()
                  .Join<TeUserExtend>((x,y) => x.Id == y.Id);

// 统计结果连接实体表             
var join = context.Query<TeMainTable>()
                  .GroupBy(x => new {
                      MId = x.MId,
                      Count = Function.Count(),
                   })
                  .Join<TeSubTable>((x, y) => x.MId == y.Id);

执行SQL语句

  • 直接使用SQL语句和存储过程
  • 支持对象参数
  • 查询结果指定类或匿名类输出
  • 存储过程支持output参数
// 普通参数
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();

// 对象参数
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();

 

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

Light.Data 的相关资讯

还没有任何资讯

Light.Data 的相关博客

light

using UnityEngine; using System.Collections; public class dengguang : MonoBehaviour { public float hSbarValue1; publi...

Sharp Light

人生总有多个第一次,而第一次总是最能冒出火花的经历,我最想听到的是那灿烂的"pow" 几个网址,用来学习,摩擦摩擦。

flash light

打开和关闭设备的闪关灯。可用作手电筒功能。 代码来源地址有文章详细说明整份代码的原理。 Code4App编译测试,测试环境:Xco...

Light Menu Bar

实现一个简单的菜单栏,即在菜单栏放很多按钮,当多个按钮无法同时显示时,可以用手指划动菜单栏,之前隐藏的按钮就会显示出来...

openapi and light-4j

light-4j项目支持openapi规范,本文介绍一下参照相关demo做的上传功能。 openapi.yaml,按照规范编写内容,/openapi/swagger可...

Codeforces | CF1000B 【Light It Up】

蒟蒻第二篇题解。。。 比赛的时候写这道题MLE了qwq。。根据CF的赛制我也没敢再交第二次。。 简单讲一下思路好了~~(假装是dal...

在dbcolinux上安装cozy-light

本文关键字:js个人云存储,cozy,node-legcay和谐模式 在前面的《appstacks》,《apps》系列文章中,我们大力涉及到带存储支持的...

Mvvm Light Toolkit 入门

原文:Mvvm Light Toolkit 入门 前言 之前学习UWP的时候就一直看到有关MVVM的资料但是一直没有系统的去学,最近正好有时间,特...

Light-Head R-CNN

[TOC] 论文信息 Zeming Li, Chao Peng, Gang Yu, Xiangyu Zhang, Yangdong Deng, Jian Sun. Light-Head R-CNN: In Defense of...

ZOJ 4020 Traffic Light

Traffic Light Time Limit: 1 Second Memory Limit: 131072 KB DreamGrid City is a city with intersections arranged into ...

Light.Data 的相关问答

还没有任何问答,马上提问

评论 (0)

加载中
更多评论
0 评论
10 收藏
分享
返回顶部
顶部