zoukankan      html  css  js  c++  java
  • SqlSugar 语句收集

    var data1 = StudentDb.GetById(1);
    //等同于
    var data2 = Db.Queryable<Student>().Single(it => it.Id == 1);

    多表查询

    var list = Db.Queryable<Student, School>((st, sc) => new object[] {
            JoinType.Left,st.SchoolId==sc.Id})
          .Select((st,sc)=>new{Id=st.Id,Name=st.Name,SchoolName=sc.Name}).ToList();

    生成的SQL如下

    SELECT  [st].[ID] AS [id] , 
              [st].[Name] AS [name] , 
              [sc].[Name] AS [schoolName]  FROM [STudent] st 
              Left JOIN School sc ON ( [st].[SchoolId] =[sc].[Id])

    多表查询自支持自动填充到ViewModel

    var s11 = Db.Queryable<Student, School>((st, sc) => st.SchoolId == sc.Id)
                            .Select<ViewModelStudent3>().ToList();
     public class ViewModelStudent3: Student
    {
             public string SchoolName { get; set; }
     }

    生成的Sql如下

    复制代码
    SELECT
               sc.[Name] AS [SchoolName],--这一列神奇的自动出现了
               sc.[Id] AS [scId],
               st.[ID] AS [Id],
               st.[SchoolId] AS [SchoolId],
               st.[Name] AS [Name],
               st.[CreateTime] AS [CreateTime]
               
               
                FROM [STudent] st  ,[School]  sc  WHERE ( [st].[SchoolId] = [sc].[Id])
    复制代码

    多表分页查询

     var list3 = Db.Queryable<Student, School>((st, sc) => new object[] {
                  JoinType.Left,st.SchoolId==sc.Id
                }).Select<ViewModel>()
                .ToPageList(pageIndex,pageSize)

    子查询

    复制代码
    var getAll = Db.Queryable<Student, School>((st, sc) => new object[] {
    JoinType.Left,st.Id==sc.Id})
    .Where(st => st.Id == SqlFunc.Subqueryable<School>().Where(s => s.Id == st.Id).Select(s => s.Id))
    .ToList();
          
    //生成的MYSQL语句,如果是SqlServer就是TOP 1
    SELECT `st`.`ID`,`st`.`SchoolId`,`st`.`Name`,`st`.`CreateTime` 
         FROM `STudent` st Left JOIN `School` sc ON ( `st`.`ID` = `sc`.`Id` )  
          WHERE ( `st`.`ID` =(SELECT `Id` FROM `School` WHERE ( `Id` = `st`.`ID` ) limit 0,1))
    复制代码

    一对一的查询

    复制代码
    var getAll = Db.Queryable<Student, School>((st, sc) => new object[] {
    JoinType.Left,st.Id==sc.Id})
    .Select(st =>
           new{
                  name = st.Name,
                  id = SqlFunc.Subqueryable<School>().Where(s => s.Id == st.Id).Select(s => s.Id)
           }).ToList();
    复制代码






  • 相关阅读:
    DFS——hdu4068
    java 浮点数定点输出
    中国剩余定理——zoj 3538
    Solr4:设计数据结构,就是配置schema.xml
    Solr4:索引的复制
    Solr4:创建索引时的一些建议
    Java:取得当前日期一周之前/之后的日期,或者是一月之前/之后的日期
    Solr4:利用Filter实现两组关键词组合查询
    MyBatis3入门一(简单查询、插入)
    MyBatis3入门二(增加、删除、修改、查询,自增长字段)
  • 原文地址:https://www.cnblogs.com/mrray/p/12855755.html
Copyright © 2011-2022 走看看