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 ...
随机推荐
- android动画介绍--Animation 实现loading动画效果
Animation的使用方法并不难.这里简单的介绍一下使用方法. 先看效果图: 效果还是不错的吧. 下面来看看使用方法. 动画效果是通过Animation来实现的,一共有四种,分别为: AlphaAn ...
- MySql常用操作语句(2:数据库、表管理以及数据操作)
本文主要内容转自一博文. 另外可供参考资源: SQL语句教程 SQL语法 1.数据库(database)管理 1.1 create 创建数据库 mysql> create database f ...
- Gradle 1.12用户指南翻译——第三十九章. IDEA 插件
本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...
- CImage 对话框初始化时候显示透明 PNG
使用CImage的时候,发现显示出来的并不是透明背景的图片,而是白色背景的图片. 后发现原因如下: PNG图片的透明背景总是一片白色,后来才发现这其实是微软GDI+的设计问题,PNG图片是ARGB,使 ...
- Java中如何封装自己的类,建立并使用自己的类库?
from:http://blog.csdn.net/luoweifu/article/details/7281494 随着自己的编程经历的积累会发现往往自己在一些项目中写的类在别的项目中也会有多次用到 ...
- studio grandle渠道打包
1. Mainfest 文件中添加一个键值对,这里的value 我定义为 "UMENG_CHANNEL_VALUE"(当然实际应用中可以根据自己的需要命名),后面打包的时候会对这 ...
- C#在PDF中如何以不同颜色高亮文本
高亮的文本有助于阅读者快速有效地获取文章关键信息.在PDF文件中,对文章的不同文本,关键词.句等进行不同颜色的文本高亮操作,可以使阅读者在阅读过程中有效地区分不同高亮颜色文本的意义.在下面的示例中,我 ...
- 百度站长平台MIP
使用说明 MIP(Mobile Instant Pages - 移动网页加速器),是一套应用于移动网页的开放性技术标准.通过提供 MIP-HTML 规范.MIP-JS 运行环境以及 MIP-Cache ...
- webapi从入门到放弃(一)OWIN 自寄宿模式
1.创建web空项目 2.创建完如图 3.安装如下程序包Microsoft.AspNet.WebApi.Core (5.2.4)Microsoft.Owin.Host.SystemWeb (4.0. ...
- SQL遇到的问题
1.问题描述:拼接sql字符串涉及到表变量时报错. 解决办法:把表变量的定义一同放在字符串中. 2.问题描述:EF添加实体后,调用存储过程调用不到 解决办法:必须先db.SaveChanges()后 ...