# 01.LambdaToSql **Repository Path**: wangshuyu/LambdaToSql ## Basic Information - **Project Name**: 01.LambdaToSql - **Description**: Lambda转Sql 小型orm框架 - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 14 - **Forks**: 2 - **Created**: 2018-06-21 - **Last Updated**: 2024-09-23 ## Categories & Tags **Categories**: database-dev **Tags**: None ## README # LambdaToSql #### 项目介绍 1. LambdaToSql 简单的兰姆达转换sql,可以直接.ToList()执行,返回查询结果 2. 比较轻量级Orm框架,在公司多个web项目中使用 3. qq群(811382380) #### 安装教程 如何获取 1. NuGet管理器 搜索:LambdaToSql 2. Install-Package LambdaToSql -Version 版本号 3. 软件采用.net 4.0 开发 #### 项目帮助文档 ## wiki https://gitee.com/wangshuyu/LambdaToSql/wikis ## 博客园 https://www.cnblogs.com/shuyu/p/9307005.html #### Demo示例程序 ## https://gitee.com/wangshuyu/LambdaToSql_Demo #### 支持功能 1. Where 条件查询 2. Order by 排序 3. Group by 分组 4. 简单分页,只支持row_number 5. 支持数据库函数:Avg Max Min Sum Count 6. 不需要任何第三方类库 #### 数据库要求 1. 只支持Microsoft SQL Server数据库,不支持SQL Server 2000 2. 最低 Microsoft SQL Server 2005 或更高 #### 性能测试 1. 基本和Ado.Net原生接近,lambda解析转换成sql语句,然后使用DBHelper参数化查询的数据库,性能 损耗是在兰姆达转语句上,后续版本会加缓存机制。 2. 接口 命名重新规划,但还是不太好,后续版本会慢慢规划,暂时预计大概发布 10个版本,出一个稳定版本 #### 如何使用 1. 配置文件中添加链接数据库字符串 2. 生成实体类(在wiki中有说明,如何生成实体类) ``` //生成实体对象文件 LambdaToSql.SysConfig.Init(); LambdaToSql.FrameWork.CreateEntity.Init("d:/class/"); ``` 3.使用结构示例 ``` //初始化DB var DB = new LambdaToSql.SqlClient(); ``` ``` DB.QueryTable<实体对象>() .Where(条件) .Select(字段) .GroupBy(分组) .OrderByDescending(排序) .OrderBy(排序) .Skip(页码) .Take(数量) .ToList();//返回集合 .Count(); .Sum(求和); .Min(最小值); .Max(最大值); .Avg(平均值); .First();//第一条 .FirstOrDefault();//第一条 .ToPageList(页码, 每页数量, ref 总数);//分页 ``` #### 更新 1. 修复主键int自增存在的 bug 2. 去掉强制字段:Guid createtime 3. 支持:int类型自增主键,支持标识列表, 4. 全局统一支持 int自增主键和guid主键 5. 新增默认主键列排序 6. 新增xml注释(之前有bug) 7. 修改版本号为3位 #### 性能测试 1. 测试环境 三星固态硬盘 2. 添加100w条数据 耗时大概250s内 3. 查询100w条数据并生产实体.Tolist(),大概3s 4. 100w数据,每页50条,取中间数据,大概100ms内 5. 插入/更新/查询 单条数据 大概20ms内 6. 删除 单条大概 20ms内