## 非id查询时,索引方式
必须添加TenantId 、OrgId ,因为索引会关联这两个属性
~~~
Where(c => c.QCType.StartsWith(categoryName) && c.TenantId == AbpSession.TenantId && c.OrgId == AbpSession.OrgId)
~~~
查询示例
---
select * from Am_recProScheme
```
var ss = from r in db.Am_recProScheme
select r;
或 var ss1 = db.Am_recProScheme;
```
select * from Am_recProScheme where rpid>10
```
var ss = from r in db.Am_recProScheme
where r.rpId > 10
select r;
或 var ss1 = db.Am_recProScheme.Where(p => p.rpId > 10);
```
select max(rpId) from Am_recProSchem
```
var ss = (from r in db.Am_recProScheme
select r).Max(p => p.rpId);
或 var ss1 = db.Am_recProScheme.Max(p=>p.rpId);
```
select min(rpId) from Am_recProScheme
```
var ss = (from r in db.Am_recProScheme
select r).Min(p => p.rpId);
或 var ss1 = db.Am_recProScheme.Min(p => p.rpId);
```
select count(1) from Am_recProScheme
```
var ss = (from r in db.Am_recProScheme
select r).Count()
或 var ss1 = db.Am_recProScheme.Count()
```
select sum(rpId) from Am_recProScheme
```
var ss = (from r in db.Am_recProScheme
select r).Sum(p => p.rpId)
或 var ss1 = db.Am_recProScheme.Sum(p => p.rpId)
```
select * from Am_recProScheme where rpid>10 order by rpId [desc|asc]
```
var ss = from r in db.Am_recProScheme
where r.rpId > 10
orderby r.rpId descending //倒序
// orderby r.rpId ascending //正序
select r;
或 var ss1 = db.Am_recProScheme.OrderBy(p => p.rpId).Where(p => p.rpId > 10).ToList();
或 var ss2 = db.Am_recProScheme.OrderByDescending(p => p.rpId).Where(p => p.rpId > 10).ToList();
```
select top(1) * from Am_recProScheme
```
var ss = (from r in db.Am_recProScheme
select r).FirstOrDefault();
或 var ss1 = db.Am_recProScheme.FirstOrDefault();
或 var ss1 = db.Am_recProScheme.First();
```
跳过前面多少条数据取余下的数据
select * from (select ROW_NUMBER()over(order by rpId desc) as rowNum, * from [Am_recProScheme]) as t where rowNum>10
```
var ss = (from r in db.Am_recProScheme
orderby r.rpId descending
select r).Skip(10);
或 var ss1 = db.Am_recProScheme.OrderByDescending(p => p.rpId).Skip(10).ToList();
```
分页
select * from (select ROW_NUMBER()over(order by rpId desc) as rowNum, * from [Am_recProScheme]) as t where rowNum>10 and rowNum<=20
```
var ss = (from r in db.Am_recProScheme
where r.rpId > 10
orderby r.rpId descending
select r).Skip(10).Take(10); //取第11条到第20条数据
或 var ss1 = db.Am_recProScheme.OrderByDescending(p => p.rpId).Where(p => p.rpId > 10).Skip(10).Take(10).ToList();
```
select * from Am_recProScheme where SortsText like '%张%'
```
var ss = from r in db.Am_recProScheme
where r.SortsText.Contains("张")
select r;
或 var ss1 = db.Am_recProScheme.Where(p => p.SortsText.Contains("张")).ToList();
```
分组group by
select recType,min(rpId),max(rpId),sum(rpId) from Am_recProScheme group by recType
```
var ss = from r in db.Am_recProScheme
orderby r.rpId descending
group r by r.recType into n
select new
{
n.Key, //这个Key是recType
rpId = n.Sum(r => r.rpId), //组内rpId之和
MaxRpId = n.Max(r => r.rpId),//组内最大rpId
MinRpId = n.Min(r => r.rpId), //组内最小rpId
};
foreach (var t in ss)
{
Response.Write(t.Key + "--" + t.rpId + "--" + t.MaxRpId + "--" + t.MinRpId);
}
或
var ss1 = from r in db.Am_recProScheme
orderby r.rpId descending
group r by r.recType into n
select n;
foreach (var t in ss1)
{
Response.Write(t.Key + "--" + t.Min(p => p.rpId));
}
或
var ss2 = db.Am_recProScheme.GroupBy(p => p.recType);
foreach (var t in ss2)
{
Response.Write(t.Key + "--" + t.Min(p => p.rpId));
}
或
var result = (from item in data
group item by new { item.Name, item.Type } into items
select new
{
items.Key.Name,
items.Key.Type,
Cnt = items.Count()
}).ToList();
或
var s = data.GroupBy(p => new { p.Type, p.Name }).Select(p=>new {
p.Key.Type,
p.Key.Name,
cnt=p.Count()
}).ToList();
```
连接查询(内连接)
select r.* from [Am_recProScheme] as r inner join [dbo].[Am_Test_Result] as t on r.[rpId] = t.[rsId] order by r.[rpId] desc
```
var ss = from r in db.Am_recProScheme
join w in db.Am_Test_Result on r.rpId equals w.rsId
orderby r.rpId descending
select r;
或
var ss1 = db.Am_recProScheme.Join(db.Am_Test_Result, p => p.rpId, r => r.rsId, (p, r) => p).OrderByDescending(p => p.rpId).ToList();
```
左外连接
```
var custs = from c in db.T_Customer
join u in db.Sys_User
on c.OwnerId equals u.Id
into temp // 左外连接后的数据源放到临时数据源temp中
from t in temp.DefaultIfEmpty() //给temp做别名
where (c.PhoneNum1 == phone || c.PhoneNum2 == phone || c.PhoneNum3 == phone)
select new
{
CustName = string.IsNullOrEmpty(c.CustName) ? "匿名" : c.CustName,
UserName = t == null ? "暂无" : t.Name//这里主要第二个集合有可能为空。需要判断
};
```
案例分析
```
var query = from m in material.GetAll()
//内连接,连接可以用来查询下级数据
join route in item2Route.GetAll() on m.MaterialCode equals route.ItemCode into r
//左外连接 ,左外连接可以用来查询上级数据
join c in materialCategory.GetAll() on new { TenantId = m.TenantId, OrgId = m.OrgId, Id = m.CategoryId } equals new { TenantId = c.TenantId, OrgId = c.OrgId, Id = c.Id } into mclist
from mc in mclist.DefaultIfEmpty()
select new MaterialAndCategory
{
Material = m,
MaterialCategory = mc,
IsBindRoute = ((r.Count()==0)?false:true) //内连接的r 不能直接拿过来用,判断是否为空可以用 count() 函数
};
```
in 查询
select * from Am_recProScheme where rpId in(24,25,26)
```
var ss = from p in db.Am_recProScheme
where (new int?[] { 24, 25,26 }).Contains(p.rpId)
select p;
foreach (var p in ss)
{
Response.Write(p.Sorts);
}
```
时间查询
```
当天时间
DateTime d = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 00:00:00"));
predicate = predicate.And(t => t.CreationTime >= d);
本周
DateTime aa = Convert.ToDateTime(DateTime.Now.AddDays(-Convert.ToInt32(DateTime.Now.Date.DayOfWeek)).ToString("yyyy-MM-dd 23:59:59"));
predicate = predicate.And(n => n.CreationTime > aa);
本月
DateTime bb = Convert.ToDateTime(DateTime.Now.AddDays(-Convert.ToInt32(DateTime.Now.Date.Day)).ToString("yyyy-MM-dd 23:59:59"));
predicate = predicate.And(n => n.CreationTime > bb );
昨天
DateTime s = Convert.ToDateTime(DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd 00:00:00"));
DateTime e = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 00:00:00"));
predicate = predicate.And(n => n.CreationTime > s && n.CreationTime < e);
```
- 命名规范
- baseService类规范
- 类创建规范
- 函数方法创建规范
- Linq规范
- API规范
- 注释规范
- EF数据迁移操作
- 常规更新
- __MigrationHistory 表没了的情况处理
- __MigrationHistory 数据记录被删
- __MigrationHistory 记录和本地更新文件不匹配
- migrate工具做数据迁移
- 同步服务
- 配置
- 错误
- ORA-03115: 不支持的网络数据类型或表示法
- MES平板常用代码
- 栏目说明
- 异步线程
- 委托(模拟触发事件)
- 添加菜单
- 添加按钮
- GridVIew列表使用
- 配置文件读写
- 弹窗提示
- 消息列表控件
- API网络接口配置
- 设置扫描枪钩子
- ScanerHook 的扫码勾子写法
- 当前全局变量
- 定时器,关闭当前窗口
- 单例模式窗口
- 配置参数
- 输入框回车事件
- 修改GridView 指定行背景颜色
- 调用窗口页面
- form窗体继承
- 控件焦点
- 串口
- 自动选择可用串口
- CPS常用代码
- 栏目说明
- 系统管理(基础模块)
- 基础数据(基础模块)
- 资料配置(基础模块)
- 质检管理
- 生产计划
- 库存交易单据(wms)
- Job 管理
- 设备管理
- 报表查询
- SMT查询
- EWI
- 消息推送服务
- 异步线程Task
- 创建权限
- 增删改查操作
- 修改
- 删除
- 添加
- 单个实体类查询
- 分页查询
- 列表查询
- 批量更新
- 发起HTTP请求
- 授权配置
- 文件上传(以excel导入为例)
- 获取当前目录的物理地址
- 使用GET的Query参数(http请求)
- 只传ID参数写法
- 关于前后端分离
- 前端
- 输入框自动大写
- 前端搜索列表页写法
- routes.js
- index.cshtml
- index.js
- 前端列表选择弹窗
- Grid高度自适应
- 弹窗提示
- 时间类型格式化
- 自动填充
- Grid控件多选处理
- 导出csv
- Grid锁定、冻结CheckBox
- 自定义弹出框写法
- 获取项目名词方法
- 获取当前路由信息
- 获取页面分页信息
- Grid 行详情写法
- EF 与 Dapper 同时使用方法
- EF查询扩展
- Dapper查询方式
- ISqlExecuter 查询方式
- 复杂业务处理方法(请求超时)
- 方法1:前端交互优化
- 方法2:后台任务
- 登录页面无法跳转,报错问题解决
- 重要接口
- 关于只传ID一个参数接口写法
- 添加一个单表查询、或简单页面
- 工序排序问题解决
- 数据库配置
- 工序序号排序
- 设置webconfig配置信息和使用
- 添加cookies
- 用户数据权限写法
- 字符串写法
- 日志打印
- 时间戳打印测试
- abp 依赖注入
- 编码转换
- TFS使用规范
- 申请授权
- 错误问题
- 平板提示“Object reference not ...”错误
- VS断点失效
- 对不起,在处理您的请求期间,产生了一个服务器内部错误
- 生成项目的时候没找到dll
- S2017 签名时出错: 未能对 bin\Debug\app.publish*.exe 签名。SignTool Error: No certificates were found
- CPS 提示“The build restored NuGet packages. Build the project again to include these packages in the build”
- 远程连接 报 CredSSP
- Linq 语句 “Unable to create a constant value of type 'System.Object'. ”
- 无法嵌入相互操作类
- Store update,insert,or delete statement affected
- 模块设计和打印功能
- 方式1:winform端标签模板
- 方式2:CPS网页标签模板
- 方式3:CPS打印Html网页内容
- index.cshtml
- index.js
- print.cshtml
- print.js
- CPS弹窗显示打印内容组件(JS)
- 打印代码
- AGV
- CPS端代码
- MES平板端代码
- 数据库表
- 区域类型
- EDI、WMS(U8反写)
- EDI数据库表
- WMS类型
- EDI类型
- CPS后台添加任务相关代码
- 采购到货
- 采购入库
- 领料出库(材料出库)
- 委外出库(材料出库)
- 生产工单出库(材料出库)
- 条码表
- 其他出库
- 销售出库
- 生产倒冲(材料出库)
- 执行任务(JuQuent.GoldServiceExportU8)
- 采购
- 产成品入库
- 材料出库
- SQL
- 规范语句模型
- 常用查询
- 优化案例
- Linq 转 string 输出
- 消息推送
- 基本架构
- 钉钉消息推送配置
- 微信消息推送配置
- 消息模板设置
- 接口
- 码云api
