脚踏实地,一步一个脚印
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
欢迎加群交流技术

freesql 查询

4287人阅读 2022/1/5 17:18 总访问:645026 评论:0 收藏:1 手机
分类: Free sql

前言

freesql   查询

实体类

        [Table(Name = "oa.dbo.Class")]
        public class Class
        {
            [Column(IsPrimary = true, IsIdentity = true)]
            //唯一ID
            public string CId { get; set; }
            //名称
            public string Cname { get; set; }
            //年级
            public string CClass { get; set; }
           

        }
        
         /// <summary>
    /// 学生实体类
    /// </summary>
    public class Student
    {
        [Column(IsPrimary =true,IsIdentity =true)]
        //学生唯一ID
        public string SId { get; set; }
        //姓名
        public string Sname { get; set; }
        //
        public string Ssex { get; set; }
        //
        public DateTime Sage { get; set; }

        //外键班级表
        public string Cid { get; set; }

    }

单表查询

            ///单表查询
            var studentlist = _FreeSql.Select<Student>()
                              .Where(a => a.SId == "1")
                              .ToList();

SQL 语句查询 

           //sql语句查询
            var studentlist1 = _FreeSql.Select<Student>()
                              .WithSql("select * from oa.dbo.Student")
                              .ToList();

分页查询

           //分页查询
            var studentlist2 = _FreeSql.Select<Student>()
                               .Where(a => 1 == 1)
                               .Count(out var total) //总记录数量
                               .Page(1, 20).ToList();

分页查询(排序)

           //分页查询(排序)
            var studentlist3 = _FreeSql.Select<Student>()
                                .Where(a => 1==1)
                                .OrderBy(a => a.SId)
                                .Count(out var total1) //总记录数量
                                .Page(1, 20).ToList();

多表联查

 //多表联查
            var studentlist4 = _FreeSql.Select<Student, Class>()
                         .LeftJoin((a, b) => a.Cid == b.CId)
                         .Where((a, b) => Convert.ToInt32(a.Cid) > 0)
                         .Where((a,b)=>a.Ssex =="男")
                         .ToList((a, b) => new { a, b });

多表查询出来的是符合条件的n张表的所有数据,每张表都返回的是实体类


多表联查(sql语句)

   //多表联查(sql语句)
            var studentlist5 =  _FreeSql.Select<Student, Student>()
                  .WithSql(
                 "select * from oa.dbo.Student ",
               "select * from oa.dbo.Class",null
               //如果有更多表但是不想查的用null代替
                 )
              .LeftJoin((a, b) => a.Cid == b.Cid)
              .Where((a, b) => a.Ssex =="女")
              .ToList((a, b) => new { a, b });

今天暂时测这么多吧
更多查询指南 | FreeSql 官方文档

评价