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();
    复制代码






  • 相关阅读:
    图的存储结构(精编)
    二叉树的输入
    哈夫曼树及编码
    C. Bits (Codeforces Round #276 (Div. 2) )
    C++ Map 容器
    POJ 1080 Human Gene Functions(dp)
    数和二叉树——二叉树的建立及应用(遍历等)(基础篇)
    数独问题的介绍及POJ 2676-Sudoku(dfs+剪枝)
    【数据结构】——稀疏矩阵转置
    POJ 3083 Children of the Candy Corn
  • 原文地址:https://www.cnblogs.com/mrray/p/12855755.html
Copyright © 2011-2022 走看看