/* 创建者:菜刀居士的博客

 * 创建日期: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的更多相关文章

  1. crm高速开发之EntityCollection

    /* 创建者:菜刀居士的博客  * 创建日期:2014年07月07号  */ namespace Net.CRM.OrganizationService {     using System;     ...

  2. crm高速开发之OrganizationService

    这是主要的开发模式: /* 创建者:菜刀居士的博客  * 创建日期:2014年07月06号  */ namespace Net.CRM.OrganizationService {     using ...

  3. crm高速开发之Entity

    我们在后台代码里面操作Entity的时候,基本上是这样写的: /* 创建者:菜刀居士的博客  * 创建日期:2014年07月5号  */ namespace Net.CRM.Entity {     ...

  4. JavaEE开发之SpringMVC中的自定义拦截器及异常处理

    上篇博客我们聊了<JavaEE开发之SpringMVC中的路由配置及参数传递详解>,本篇博客我们就聊一下自定义拦截器的实现.以及使用ModelAndView对象将Controller的值加 ...

  5. [Unity3D]Unity3D游戏开发之Lua与游戏的不解之缘终结篇:UniLua热更新全然解读

    ---------------------------------------------------------------------------------------------------- ...

  6. 微信公众号开发之VS远程调试

    目录 (一)微信公众号开发之VS远程调试 (二)微信公众号开发之基础梳理 (三)微信公众号开发之自动消息回复和自定义菜单 前言 微信公众平台消息接口的工作原理大概可以这样理解:从用户端到公众号端一个流 ...

  7. Android混合开发之WebViewJavascriptBridge实现JS与java安全交互

    前言: 为了加快开发效率,目前公司一些功能使用H5开发,这里难免会用到Js与Java函数互相调用的问题,这个Android是提供了原生支持的,不过存在安全隐患,今天我们来学习一种安全方式来满足Js与j ...

  8. Android混合开发之WebView与Javascript交互

    前言: 最近公司的App为了加快开发效率选择了一部分功能采用H5开发,从目前市面的大部分App来讲,大致分成Native App.Web App.Hybrid App三种方式,个人觉得目前以Hybri ...

  9. UWP开发之Template10实践二:拍照功能你合理使用了吗?(TempState临时目录问题)

    最近在忙Asp.Net MVC开发一直没空更新UWP这块,不过有时间的话还是需要将自己的经验和大家分享下,以求共同进步. 在上章[UWP开发之Template10实践:本地文件与照相机文件操作的MVV ...

随机推荐

  1. foreach遍历对象的属性

    <?php class MyClass { public $var1 = 'value 1' ; public $var2 = 'value 2' ; public $var3 = 'value ...

  2. jQuery.form 中的 ajaxForm() 和 ajaxSubmit()

    官方例子  http://malsup.com/jquery/form/#ajaxForm官方API   http://malsup.com/jquery/form/#api中文API   http: ...

  3. zepto API参考(~~比较全面)

    Zepto是一个轻量级的针对现代高级浏览器的JavaScript库, 它与jquery有着类似的api. 如果你会用jquery,那么你也会用zepto. 设计的目的是提供jquery的类似的APIs ...

  4. synapse socket总结三:心跳(Heartbeat)

    首先转载一篇关于心跳的博文解释: 所谓的心跳包就是客户端定时发送简单的信息给服务器端告诉它我还在而已.代码就是每隔几分钟发送一个固定信息给服务端,服务端收到后回复一个固定信息如果服务端几分钟内没有收到 ...

  5. 设计模式多线程方面之Thread-Per-Message 模式

    Thread-Per-Message模式是一个很简单但很常应用的模式,尤其是在GUI程式中,我们举个例子,当您设计一个文件编辑器时,您可能像这样注册一个开启档案的事件处理:  menuOpenFile ...

  6. perl学习(1) 入门

    Perl 被设计成90%擅长处理文本,10%处理其余的问题.因此Perl 有强大的文本处理能力,包括正则表达式. 第一个程序 hello world #! /usr/bin/perl -w use s ...

  7. iOS开发- 打包ipa,让别人设备安装你的App

    一般在接外包的时候, 通常第三方须要安装你的app进行測试(这时候你的app肯定是还没传到app store之前). 这样的情况下.假设是企业账号就好办了, 随便安装.. 可是个人开发人员账号呢? 假 ...

  8. python中的class

    尽管Python在Function Programming中有着其他语言难以企及的的优势,但是我们也不要忘了Python也是一门OO语言哦.因此我们关注Python在FP上的优势的同时,还得了解一下P ...

  9. win8系统特别慢的基本判断方法

    单位有6,7台同事的电脑是win8.1.不知道什么原因,两位领导反映电脑特别慢. 我查看了一下,确实很慢. 虽然知道win8系统不好,但也不至于这样. 打开任务管理器,看了一下cpu和内存的使用状态, ...

  10. ThinkPHP - 进行继承时的 构造函数

    被继承文件:PublicController.class.php <?php namespace Admin\Controller; use Think\Controller; class Pu ...