crm高速开发之QueryExpression
/* 创建者:菜刀居士的博客
* 创建日期:2014年07月06号
*/
namespace Net.CRM.OrganizationService
{
using System;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Query;
using System.Collections.Generic;
/// <summary>
/// QueryExpression
/// </summary>
public class QueryExpressionDemo
{
/// <summary>
/// 基本模式,构造查询--QueryExpression
/// </summary>
public void CreateQueryExpression()
{
QueryExpression query = new QueryExpression();
//查询的实体名称
query.EntityName = "new_accountproduct";
//查询实体的属性集合
query.ColumnSet = new ColumnSet("new_product","new_name","new_price");
//查询条件
query.Criteria.AddCondition(new ConditionExpression("statecode",ConditionOperator.Equal,0));
query.Criteria.AddCondition(new ConditionExpression("new_name", ConditionOperator.Like, "水果" + "%"));
List<Guid> list = new List<Guid>();
list.Add(new Guid("27BB1B31-09BB-E311-B590-D89D671782D3"));
list.Add(new Guid("E8F8D412-31BB-E311-B590-D89D671782D3"));
query.Criteria.AddCondition(new ConditionExpression("new_product",ConditionOperator.In,list.ToArray()));
query.Criteria.AddCondition(new ConditionExpression("new_name", ConditionOperator.NotNull));
query.Criteria.AddCondition(new ConditionExpression("new_price", ConditionOperator.Null));
}
/// <summary>
/// 高速模式,构造查询--QueryExpression
/// </summary>
public void CreateQuickQueryExpression()
{
QueryExpression query = "new_accountproduct".ToQuery("new_product", "new_name", "new_price");
query.AddEqual("statecode", 0);
query.AddLike("new_name", "水果" + "%");
List<Guid> list = new List<Guid>();
list.Add(new Guid("27BB1B31-09BB-E311-B590-D89D671782D3"));
list.Add(new Guid("E8F8D412-31BB-E311-B590-D89D671782D3"));
query.AddIn("new_product", list.ToArray());
query.AddNotNull("new_name");
query.AddNull("new_price");
}
}
public static class ExtensionFunction
{
public static QueryExpression ToQuery(this string entityName)
{
QueryExpression query = new QueryExpression();
query.EntityName = entityName;
return query;
}
public static QueryExpression ToQuery(this string entityName,params string[] Attrs)
{
QueryExpression query = new QueryExpression();
query.EntityName = entityName;
query.ColumnSet = new ColumnSet(Attrs);
return query;
}
public static void AddEqual<T>(this QueryExpression query,string name,T value)
{
query.Criteria.AddCondition(new ConditionExpression(name,ConditionOperator.Equal,value));
}
public static void AddLike(this QueryExpression query, string name,string value)
{
query.Criteria.AddCondition(new ConditionExpression(name,ConditionOperator.Like,value));
}
public static void AddIn<T>(this QueryExpression query, string name,T[] values)
{
query.Criteria.AddCondition(new ConditionExpression(name, ConditionOperator.In, values));
}
public static void AddNotNull(this QueryExpression query,params string[] attrs)
{
if (attrs != null && attrs.Length > 0)
{
foreach(string name in attrs)
{
query.Criteria.AddCondition(new ConditionExpression(name, ConditionOperator.NotNull));
}
}
}
public static void AddNull(this QueryExpression query, params string[] attrs)
{
if (attrs != null && attrs.Length > 0)
{
foreach (string name in attrs)
{
query.Criteria.AddCondition(new ConditionExpression(name, ConditionOperator.Null));
}
}
}
}
}
对照:
crm高速开发之QueryExpression的更多相关文章
- crm高速开发之EntityCollection
/* 创建者:菜刀居士的博客 * 创建日期:2014年07月07号 */ namespace Net.CRM.OrganizationService { using System; ...
- crm高速开发之OrganizationService
这是主要的开发模式: /* 创建者:菜刀居士的博客 * 创建日期:2014年07月06号 */ namespace Net.CRM.OrganizationService { using ...
- crm高速开发之Entity
我们在后台代码里面操作Entity的时候,基本上是这样写的: /* 创建者:菜刀居士的博客 * 创建日期:2014年07月5号 */ namespace Net.CRM.Entity { ...
- JavaEE开发之SpringMVC中的自定义拦截器及异常处理
上篇博客我们聊了<JavaEE开发之SpringMVC中的路由配置及参数传递详解>,本篇博客我们就聊一下自定义拦截器的实现.以及使用ModelAndView对象将Controller的值加 ...
- [Unity3D]Unity3D游戏开发之Lua与游戏的不解之缘终结篇:UniLua热更新全然解读
---------------------------------------------------------------------------------------------------- ...
- 微信公众号开发之VS远程调试
目录 (一)微信公众号开发之VS远程调试 (二)微信公众号开发之基础梳理 (三)微信公众号开发之自动消息回复和自定义菜单 前言 微信公众平台消息接口的工作原理大概可以这样理解:从用户端到公众号端一个流 ...
- Android混合开发之WebViewJavascriptBridge实现JS与java安全交互
前言: 为了加快开发效率,目前公司一些功能使用H5开发,这里难免会用到Js与Java函数互相调用的问题,这个Android是提供了原生支持的,不过存在安全隐患,今天我们来学习一种安全方式来满足Js与j ...
- Android混合开发之WebView与Javascript交互
前言: 最近公司的App为了加快开发效率选择了一部分功能采用H5开发,从目前市面的大部分App来讲,大致分成Native App.Web App.Hybrid App三种方式,个人觉得目前以Hybri ...
- UWP开发之Template10实践二:拍照功能你合理使用了吗?(TempState临时目录问题)
最近在忙Asp.Net MVC开发一直没空更新UWP这块,不过有时间的话还是需要将自己的经验和大家分享下,以求共同进步. 在上章[UWP开发之Template10实践:本地文件与照相机文件操作的MVV ...
随机推荐
- apt-get 命令详解(中文),以及实例
apt-get 命令详解(中文),以及实例 一,什么的是apt-get 高级包装工具(英语:Advanced Packaging Tools,简称:APT)是Debian及其衍生发行版(如:ubunt ...
- struts2 convention-plugin
导入这个插件,该插件的作用是替换掉struts.xml 原则是没有配置,全是约定 基本步骤 1.新建HomeAction,里面有个execute方法return success,请求home.acti ...
- Java面试题之三
十一.谈谈final,finally,finalize的区别? 1.final:是修饰符,是一个关键字.修饰变量,如果是基本类型表示该变量的值不能修改:如果是引用类型表示该变量不能指向别的对象:修饰类 ...
- MFC基础类源码CPP实现文件
WinMain.CPP---->AfxWinMain() //近似可认为是WinMain()函数的入口 VIEWCORE.CPP---->CView DOCCORE.CPP----> ...
- android 项目中log信息的正确处理
我们在做项目中,调试程序的时候通常是debug或者打log,特别是看一些json数据之类的,都喜欢打log看看,可是在项目上线时log信息一定不能被打印出来,大家能够平时下载一些做的烂的app,连接e ...
- IT忍者神龟之Java动态代理与CGLib代理
<br>public class UserDAOImpl{ <br><br> public void save() { <br> / ...
- C语言中操作符的优先级大全
C语言中操作符的优先级大全, 当然c++, Objective-C,大部分语言都试用. 下面是来自The C Programming Language 2th的总结. OperatorsAssocia ...
- BZOJ 3132: 上帝造题的七分钟( 二维BIT )
二维树状数组... 自己YY一下再推一下应该可以搞出来... --------------------------------------------------------------------- ...
- windows环境下Mongodb分片配置
使用MongoDB的GridFS来存储文件,以前一直使用单个服务,分布式环境也一直没有配置成功,今天参考了几位大神的文章终于配置成功,再也不用担心文件存储的性能和安全啦.以下是自己部署的过程和示例,记 ...
- POJ 2451 Uyuw's Concert(半平面交nlgn)
//#pragma comment(linker, "/STACK:16777216") //for c++ Compiler #include <stdio.h> # ...