一:动态拼接条件查询

var expression = PredicateBuilder.True<OQC_MES_INF_UL_QMS_OFFLINE>();
SYS_ROLES_CONFIG rule = context.SysRolesConfig.Single(t => t.ORG_ID == orgid&&t.STATE=="A"); StringBuilder sb = new StringBuilder();
sb.Append("该机身条码在与当前抽检");
if (!string.IsNullOrEmpty(rule.SYS_PARMS1)) {
//同生产工单
expression = expression.And(a => a.MO_NAME == model.WORK_ORDER_ID);
sb.Append("同生产工单、");
} int count = context.OQC_MES_INF_UL_QMS_OFFLINE.Get(expression).Count();

  

二:左连接

var result1 = from a in context.OQC_ASS_PARTS_V_INF
join b in context.INV_MITEM on a.PRIMARY_ITEM_ID equals b.CODE
where a.STATE == StateConverter.Active && a.ORG_ID == ORG_ID && a.ORG_ID == b.ORG_ID && a.WIP_ENTITY_NO == WORK_ORDER_ID
select new
{
WIP_ENTITY_ID = a.WIP_ENTITY_ID,
PROID = a.PRIMARY_ITEM_NAME,
WIP_ENTITY_NO = a.WIP_ENTITY_NO,
START_QUANTITY = a.START_QUANTITY,
EATTRIBUTE1 = b.EATTRIBUTE1,
COMPLETE_DATE = a.SCHEDULED_COMPLETION_DATE,
SCHEDULE_GROUP = a.SCHEDULE_GROUP_NAME,
PRODUCTION_LINE = a.EATTRIBUTE1
};
var result2 = from a in context.OQC_ASS_PARTS_V_INF
join c in context.OQC_OMS_IF_QMS_ORDERINFO_V_INF on a.PRIMARY_ITEM_NAME equals c.MRP_ITEM_CODE
where a.STATE == StateConverter.Active && a.ORG_ID == ORG_ID && a.ORG_ID == c.ORG_ID && a.WIP_ENTITY_NO == WORK_ORDER_ID
select new
{
WIP_ENTITY_ID = a.WIP_ENTITY_ID,
CONSUME_COUNTRY = c.CONSUME_COUNTRY,
CUSTOMER_NAME = c.CUSTOMER_NAME,
CUSTOMER_CODE = c.CUSTOMER_CODE
};
var result3 = from aa in result1
join bb in result2 on aa.WIP_ENTITY_ID equals bb.WIP_ENTITY_ID
into cc
from bb in cc.DefaultIfEmpty()
select new
{
//产品编码
PROID = aa.PROID,
//生产工单
WIP_ENTITY_NO = aa.WIP_ENTITY_NO,
//工单数量
START_QUANTITY = aa.START_QUANTITY,
//产品型号
EATTRIBUTE1 = aa.EATTRIBUTE1,
//完工时间
COMPLETE_DATE = aa.COMPLETE_DATE,
//车间
SCHEDULE_GROUP = aa.SCHEDULE_GROUP,
//客户订单号
CUSTOMER_CODE = bb.CUSTOMER_CODE,
//客户名称
CUSTOMER_NAME = bb.CUSTOMER_NAME,
//销往地
CONSUME_COUNTRY = bb.CONSUME_COUNTRY,
//作业产线信息
PRODUCTION_LINE=aa.PRODUCTION_LINE
};
var rs = result3.FirstOrDefault();

  

ef 高级操作的更多相关文章

  1. ASP.NET MVC深入浅出(被替换) 第一节: 结合EF的本地缓存属性来介绍【EF增删改操作】的几种形式 第三节: EF调用普通SQL语句的两类封装(ExecuteSqlCommand和SqlQuery ) 第四节: EF调用存储过程的通用写法和DBFirst模式子类调用的特有写法 第六节: EF高级属性(二) 之延迟加载、立即加载、显示加载(含导航属性) 第十节: EF的三种追踪

    ASP.NET MVC深入浅出(被替换)   一. 谈情怀-ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态 ...

  2. EF如何操作内存中的数据以及加载相关联表的数据:延迟加载、贪婪加载、显示加载

    之前的EF Code First系列讲了那么多如何配置实体和数据库表的关系,显然配置只是辅助,使用EF操作数据库才是每天开发中都需要用的,这个系列讲讲如何使用EF操作数据库.老版本的EF主要是通过Ob ...

  3. [Session] SessionHelper2---C#关于Session高级操作帮助类 (转载)

    点击下载 SessionHelper2.rar 这个类是关于Session的一些高级操作1.添加时限制时间2.读取对象3.读取数据等等看下面代码吧 /// <summary> /// 联系 ...

  4. EF如何操作内存中的数据和加载外键数据:延迟加载、贪婪加载、显示加载

    EF如何操作内存中的数据和加载外键数据:延迟加载.贪婪加载.显示加载 之前的EF Code First系列讲了那么多如何配置实体和数据库表的关系,显然配置只是辅助,使用EF操作数据库才是每天开发中都需 ...

  5. cassandra高级操作之索引、排序以及分页

    本次就给大家讲讲cassandra的高级操作:索引.排序和分页:处于性能的考虑,cassandra对这些支持都比较简单,所以我们不能希望cassandra完全适用于我们的逻辑,而是应该将我们的逻辑设计 ...

  6. MySQL学习笔记_9_MySQL高级操作(上)

    MySQL高级操作(上) 一.MySQL表复制 create table t2 like t1;               #复制表结构,t2可以学习到t1所有的表结构 insert into t2 ...

  7. MySQL学习笔记_10_MySQL高级操作(下)

    MySQL高级操作(下) 五.MySQL预处理语句 1.设置预处理stmt,传递一个数据作为where的判断条件 prepare stmt from "select * from table ...

  8. Asp.Net Core 2.0 项目实战(4)ADO.NET操作数据库封装、 EF Core操作及实例

    Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Ne ...

  9. python列表(list)的使用技巧及高级操作

    python列表(list)的使用技巧及高级操作置顶 2018年03月25日 13:39:41 顽劣的石头 阅读数:5478 标签: python extend bisect list enumera ...

随机推荐

  1. magento插件手动下载

    http://freegento.com/ddl-magento-extension.php 这是插件下载网址,但是要去magento官网获得下载秘钥,输入秘钥即可以下载.

  2. Java-->一个只能运行十次的程序

    --> 感觉没什么营养的样子啊... package com.dragon.java.tensoftware; import java.io.BufferedReader; import jav ...

  3. 2分钟读懂Hadoop和Spark的异同

    谈到大数据框架,现在最火的就是Hadoop和Spark,但我们往往对它们的理解只是提留在字面上,并没有对它们进行深入的思考,倒底现在业界都在使用哪种技术?二者间究竟有哪些异同?它们各自解决了哪些问题? ...

  4. Log4J 使用实战

    前言: 日志在开发和服务中扮演重要的角色, 有人用来追查/分析问题, 有人通过日志, 来记录重要的信息. 日志是数据分析和统计最重要的数据来源. 在Java领域, Log4j日志框架成为java开发人 ...

  5. 触摸精灵lua脚本实现微信群加好友功能

    --此脚本针对iPhone5/5s --目前只实现一个屏幕微信群好友的添加,如果想添加更多好友, --需要划屏操作,执行划屏操作时建议循环滑动 function main() --获取屏幕的分辨率 w ...

  6. JS从头开始

    API:应用程序编程接口 HTML:超文本标记语言 XML:可扩展标记语言 HTML和XML的差别:设计目的不同:XML被设计用来传输和存储数据,其焦点在数据的内容:HTML被设计用来显示数据,其焦点 ...

  7. MySQL 参数autoReconnect=true 解决8小时连接失效

    <!--  dataSource加参数    处理mysql 8小时自动断开连接的问题 --> <property name="testWhileIdle" va ...

  8. leetcode 120 Triangle ----- java

    Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent n ...

  9. zookeeper的 目录加密

    import org.apache.zookeeper.CreateMode;import org.apache.zookeeper.WatchedEvent;import org.apache.zo ...

  10. spark中streamingContext的使用详解

    两种创建方式 val conf = new SparkConf().setAppName(appName).setMaster(master);val ssc = new StreamingConte ...