SqlSugar 盲点
1、读取数据库连接
private SqlSugarClient GetInstance()
{
string conmstring = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["BaseDb"].ToString();
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { InitKeyType = InitKeyType.Attribute, ConnectionString = conmstring, DbType = SqlSugar.DbType.SqlServer, IsAutoCloseConnection = true });
return db;
}
2、定义别名
[SugarTable("ado.Student")] //别名处理
public class Student {[SugarColumn(IsIgnore=true)]public string xxx{get;set;} //这列在ORM会过滤掉[SugarColumn(ColumnName="name")]public string xxx{get;set;} //这列在ORM会当成 name处理}我们可以用Add的方式
db.MappingTables.Add()
db.MappingColumns.Add()
db.IgnoreColumns.Add()
我们还可以用AS
//别名表
db.Queryable<T>().As("tableName").ToList(); //别名列
.Where(it=>SqlFunc.MappingColumn(it.OldName,"NewName") == "jack")
他们之间的优先级:
AS>Add>属性方式
3、小技巧
Queryable<T>().AS("(select * from [student]) t").ToPageList(1,2);
使用函数 SqlFunc类
var getByFuns = db.Queryable<Student>().Where(it => SqlFunc.IsNullOrEmpty(it.Name)).ToList(); |
是否存在这条记录
var isAny2 = db.Queryable<Student>().Any(it => it.Id == -1);
获取同一天的记录
var getTodayList = db.Queryable<Student>().Where(it => SqlFunc.DateIsSame(it.CreateTime, DateTime.Now)).ToList();
4、IN查询
var in1 = db.Queryable<Student>().In(it=>it.Id,new int[] { 1, 2, 3 }).ToList();
var in1 = db.Queryable<Student>().In(it=>it.Id,new int[] { 1, 2, 3 }).ToList();
5、多个Queryable
var q1= db.Queryable<DataItemEntity, DataItemDetailEntity>((a, b) => new object[] {
JoinType.Left,a.ItemId==b.ItemId,
}).Select((a,b) => b);
var q2 = db.Queryable<QRFileEntity>();
var innerjoin = db.Queryable(q1, q2, JoinType.Inner, (j1, j2) => j1.ItemDetailId == j2.ParentId).Select((j1, j2) => j1).ToList();
6、MappingColumn 实现复杂的功能
var s2 = db.Queryable<Student>()
.Select(it => new { id = it.Id, rowIndex=SqlFunc.MappingColumn(it.Id, " row_number() over(order by id)") }).ToList();var propertyName = "ItemDetailId'"; //类中的属性的名称
var dbColumnName = db.EntityProvider.GetDbColumnName<DataItemDetailEntity>(propertyName);
var list2 = db.Ado.SqlQuery<DataItemDetailEntity>(string.Format("select * from DataItemDetail where {0} =@value ", dbColumnName), new { value =""}).ToList();
8、分组返回所有列
var file = db.Queryable<QRFileEntity>().PartitionBy(c => c.FName).Select(c => c).ToList();
9、联表更新
var res = db.Updateable<QRFileEntity>().UpdateColumns(c => new QRFileEntity
{
CreateUserName = SqlFunc.Subqueryable<UserEntity>().Where(d => d.UserId == "").Select(d => d.RealName),
FName = ""
}).Where(c => c.FileId == "").ExecuteCommand();
SqlSugar 盲点的更多相关文章
- .NET 开源SqlServer ORM框架 SqlSugar 3.0 API
3.1.x ,将作为3.X系统的最后一个版本,下面将会开发 全新的功能 更新列表:https://github.com/sunkaixuan/SqlSugar/releases 优点: SqlSuga ...
- T4 模板自动生成带注释的实体类文件 - 只需要一个 SqlSugar.dll
生成实体就是这么简单,只要建一个T4文件和 文件夹里面放一个DLL. 使用T4模板教程 步骤1 创建T4模板 ,一定要自已新建,把T4代码复制进去,好多人因为用我现成的T4报错(原因不明) 点击添加文 ...
- 开源网站.NETMVC+ Layui+SqlSugar+RestSharp
SugarSite一个前端支持移动端的企业网站,目前只支持了简单功能,后续还会加上论坛等. 源码GIT地址: https://github.com/sunkaixuan/SugarSite 技术介绍 ...
- SqlSugar ORM已经支持读写分离
目前只有MYSQL版 3.5.2.9 支持,其库版本12月3号更新该功能 用例讲解 using (var db = new SqlSugarClient("主连接字符串", &qu ...
- Dapper ORM VS SqlSugar ORM的 8场对决
CUP和.NET SQL版本不同也会存在少许差距,但不会有质变,下面的测试结果仅供参考 比赛规则 1.统一使用Realse版本的最新 DLL,Realse模式启用程序 2.为了平衡CPU和数据库空闲情 ...
- Asp.Net 高性能ORM框架 SqlSugar.ORM 2.8
3.0最新API: http://www.cnblogs.com/sunkaixuan/p/5911334.html 1.前言/Preface SqlSugar从去年到现在已经一年了,版本从1.0升到 ...
- 【开源项目SugarSite】ASP.NET MVC+ Layui+ SqlSugar+RestSharp项目讲解
SugarSite一个前端支持移动端的企业网站,目前只支持了简单功能,后续还会加上论坛等. 源码GIT地址: https://github.com/sunkaixuan/SugarSite 技术介绍 ...
- C语言 malloc()与sizeof运算的盲点
//malloc()与sizeof运算的盲点 #include <stdio.h> #include <stdlib.h> #include <string.h> ...
- ASP.NET - SqlSugar ORM框架 更新列表
以后SqlSugar所有更新都会在这个贴子更新 SqlSugar是一款轻量级的MSSQL ORM ,除了具有媲美ADO的性能外还具有和EF相似简单易用的语法. 学习列表 0.功能更新 1.SqlSug ...
随机推荐
- 不错的东西: AutoMapper
详细信息可阅读原文:http://csharppulse.blogspot.in/2013/08/crud-operations-using-automapper-in-c_381.html 这东西可 ...
- OpenCV进行图像相似度对比的几种办法
转载请注明出处:http://blog.csdn.net/wangyaninglm/article/details/43853435, 来自:shiter编写程序的艺术 对计算图像相似度的方法,本文做 ...
- oracle临时表空间 ORA-01652:无法通过16(在表空间XXX中)扩展 temp 字段
今天在查数据的时候报错 ORA-01652:无法通过16(在表空间temp1中)扩展 temp 字段 查看表空间使用明细 SELECT b.tablespace, b.segfile# ...
- Android主题切换—夜间/白天模式探究
现在市面上众多阅读类App都提供了两种主题:白天or夜间. 上述两幅图片,正是两款App的夜间模式效果,所以,依据这个功能,来看看切换主题到底是怎么实现的(当然现在github有好多PluginThe ...
- android 防止反编译的若干方法
第一种方式:混淆策略 混淆策略是每个应用必须增加的一种防护策略,同时他不仅是为了防护,也是为了减小应用安装包的大小,所以他是每个应用发版之前必须要添加的一项功能,现在混淆策略一般有两种: 对代码的混淆 ...
- Linux文件系统的简单操作 - df, du, ln
现在我们知道磁盘的整体数据是在 superblock 区块中,但是每个各别文件的容量则在 inode 当中记载的. 那在文字接口底下该如何叫出这几个数据呢?底下就让我们来谈一谈这两个命令: df:列出 ...
- Android特效专辑(三)——自定义不一样的Toast
Android特效专辑(三)--自定义不一样的Toast 大家都知道,Android的控件有时候很难满足我们的需求,所以我们需要自定义View.自定义的方式很多,有继承原生控件也有直接自定义View的 ...
- mybatis源码之BaseStatementHandler
/** * @author Clinton Begin */ public abstract class BaseStatementHandler implements StatementHandle ...
- C# 操作Word 文档——添加Word页眉、页脚和页码
在Word文档中,我们可以通过添加页眉.页脚的方式来丰富文档内容.添加页眉.页脚时,可以添加时间.日期.文档标题,文档引用信息.页码.内容解释.图片/LOGO等多种图文信息.同时也可根据需要调整文字或 ...
- 听《津津乐道》ThinkPad专题节目有感
自2011年使用Mac以来,就没怎么想过要再换一个windows使用,可是前几天听了<津津乐道>播客节目,主播朱峰讲了ThinkPad的使用经历,这个倒是让我回想起第一次见到IBM电脑时的 ...