1、LambdaToSql 发布1.0.0.1版本

来源:互联网 发布:传奇变速源码 编辑:程序博客网 时间:2024/06/15 15:37

LambdaToSql 简单的兰姆达转换sql,可以直接.ToList()执行,返回查询结果

第一个版本支持:

  1. Where 条件查询
  2. Order by 排序
  3. Group by 分组
  4. 简单分页,只支持row_number
  5. 支持数据库函数:Avg Max Min Sum Count
  6. 不需要任何第三方类库
  7. 暂不支持事物处理
  8. 暂不支持多表join查询

性能:

  1. 基本和Ado.Net原生接近,lambda解析转换成sql语句,然后使用DBHelper参数化查询的数据库,性能损耗是在兰姆达转语句上,后续版本会加缓存机制。
  2. 暂时不支持事物处理
  3. 接口 命名重新规划,但还是不太好,后续版本会慢慢规划,暂时预计大概发布 10个版本,出一个稳定版本

如何获取:

  1. NuGet管理器 搜索:LambdaToSql
  2. Install-Package LambdaToSql -Version 版本号

使用示例:

  1. 配置文件中添加链接数据库字符串  <add name="ConnectionString" connectionString="Server=.;Database=test;User ID=sa;Password=123456" providerName="System.Data.SqlClient" />
  2. 测试代码
  3. 使用实例

    DB.QueryTable<实体对象>()
    .Where(条件)
    .Select(字段)
    .GroupBy(分组)
    .OrderByDescending(排序)
    .OrderBy(排序)
    .Skip(页码)
    .Take(数量)
    .ToList();//返回集合

    .Count();
    .Sum(求和);
    .Min(最小值);
    .Max(最大值);
    .Avg(平均值);
    .First();//第一条
    .FirstOrDefault();//第一条
    .ToPageList(页码, 每页数量, ref 总数);//分页

  4. using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using LambdaToSql.FrameWork;namespace Web{    public partial class Clent : System.Web.UI.Page    {        LambdaToSql.SqlClient DB = new LambdaToSql.SqlClient();        protected void Page_Load(object sender, EventArgs e)        {            //生成实体对象文件            //LambdaToSql.SysConfig.Init();            //LambdaToSql.Fireworks.CreateEntity.Init("d:/class/");            //Find查询主键            //var obj = db.QueryTable<EntityModel.System_UserInfo>().Find(Guid.Parse("9c1d1247-cd2c-424d-be14-ef8abae655a4"));            //var item = new string[] { "15842709668", "18609877687", "15804279711", "13998756128", "13019965033" }.ToList();            //var list = db.QueryTable<EntityModel.System_UserInfo>(ex => LambdaToSql.Fireworks.Method.In(ex.LoginName, item)).ToList();            //var list = db.QueryTable<EntityModel.System_UserInfo>(ex => item.Contains(ex.LoginName)).ToList();            function();            Select();        }        private void function() //函数查询        {                       var list = DB.QueryTable<EntityModel.System_UserInfo>()                //.Where(ex => ex.LoginName.Contains("15"))                //.Where(ex => ex.LoginName.StartsWith("158"))                //.Where(ex => ex.LoginName.EndsWith("88"))                //.Where(ex => ex.LoginName.NotContains("88"))                //.Where(ex => ex.LoginName == "Shuyu".ToLower())                // .Where(ex => item.Contains(ex.LoginName))                //.Where(ex => item.NotContains(ex.LoginName))                .ToList();        }        private void Select()//基本查询 分页         {            int total = 0;            var list = DB.QueryTable<EntityModel.System_UserInfo>()                    //.Select(ex => new { ex.LoginName, ex.UserName })                    //.Select(ex => new { ex.PassWord, ex.IdCard })                    //.Where(ex => ex.LoginName == "test" || ex.UserName == "社区民警")                    //.Where(ex => ex.LoginName == "test")                    //.GroupBy(ex => new { ex.LoginName })                    //.GroupBy(ex => new { ex.UserName })                    //.OrderByDescending(ex => ex.LoginName)                    //.OrderBy(ex => ex.UserName)                    //.Take(15)                    //.Where(ex => ex.LoginName.Contains("15"))                    //.Where(ex => ex.LoginName.StartsWith("158"))                    //.Where(ex => ex.LoginName.EndsWith("88"))                    //.Where(ex => ex.LoginName.NotContains("88"))                    //.Where(ex => ex.LoginName == "Shuyu".ToLower())                    //.Where(ex => Method.Like(ex.LoginName, "158%"))                    //.Where(ex => Method.NotLike(ex.LoginName, "158%"))                    //.Where(ex => Method.In(ex.LoginName, "15841479211"))                    //.Where(ex => Method.In(ex.LoginName, item))                    //.Where(ex => Method.NotIn(ex.LoginName, item))                    //.Count();                    //.Take(10)                    //.Skip(2)                    //.OrderBy(ex => ex.CreateTime)                    //.Sum(ex => ex.LogOnCount);                    //.Min(ex => ex.LogOnCount);                    //.Max(ex => ex.LogOnCount);                    //.Avg(ex => ex.LogOnCount);                    //.First();                    //.FirstOrDefault();                    //.ToPageList(3, 15, ref total);                    .ToList();        }    }}