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

时间: 2024-10-12 20:40:22

crm快速开发之QueryExpression的相关文章

crm快速开发之Entity

我们在后台代码里面操作Entity的时候,基本上是这样写的: /* 创建者:菜刀居士的博客 * 创建日期:2014年07月5号 */ namespace Net.CRM.Entity { using System; using Microsoft.Xrm.Sdk; /// <summary> /// 基本模式---Entity /// </summary> public class EntityDemo { public void Run(Entity entity) { if (

crm快速开发之OrganizationService

这是基本的开发模式: /* 创建者:菜刀居士的博客 * 创建日期:2014年07月06号 */ namespace Net.CRM.OrganizationService { using System; using Microsoft.Xrm.Sdk; using Microsoft.Xrm.Sdk.Query; /// <summary> /// 基本模式---OrganizationService /// </summary> public class Organization

crm快速开发之EntityCollection

/* 创建者:菜刀居士的博客 * 创建日期:2014年07月07号 */ namespace Net.CRM.OrganizationService { using System; using Microsoft.Xrm.Sdk; using Microsoft.Xrm.Sdk.Query; /// <summary> /// EntityCollection /// </summary> public class EntityCollectionDemo { /// <su

Android快速开发之appBase——(6).HttpReq和APICloudSDK

Android快速开发之appBase--(6).HttpReq和APICloudSDK HttpReq和APICloudSDK都是网络请求组件,都是基于xUtils的HttpUtils重新封装的.接下来讲一下使用方法. 1.HttpReq 看以看到有这么几个方法 GET:GET方式请求 POST:普通的POST表单提交 POST:将数据以流的形式传递 /** * POST请求,用InputStream的方式传递请求参数 * * @param api * 接口地址 * @param reques

Android快速开发之appBase——(1).appBase介绍

Android快速开发之appBase--(1).appBase介绍 一直想写博客,苦于自己的文笔实在不行,在CSDN潜水了好几年,中间差不多3年没有写过博客.原因有二:1.文笔差:2.没时间. 今年开始,时间充裕了,开始计划练练自己的文笔,也让自己成长起来,希望从中能够提升自己的能力.望大家多多支持和关注!! 导读:appBase是什么? appBase是一个Android app开发的基础集合,目的是任何应用都可以在这个基础之上开发app,省去了搭建框架的时间. appBase=xutils

Android快速开发之appBase——(2).万能的Adapter

Android快速开发之appBase--(2).万能的Adapter android的Adapter是常用的一个组件,自定义的adapter基本上都是集成BaseAdapter,然后实现getView等一系列方法.时间长了,难免让人感觉到写的重复性代码过多,那么万能的Adapter讲解放你的双手. 对比 BaseAdapter package com.snicesoft.appbase.demo; import java.util.ArrayList; import java.util.Lis

Android快速开发之appBase——实战《购物车》

Android快速开发之appBase--实战<购物车> 最近将appBase实战于各种项目中,也发现了不少问题,并优化了很多功能.今天带给大家一个实战–<购物车>.购物车,在商城app中是必不可少的一部分,也是使用的比较多的,这里简单的做一个效果. 先来看看效果图 1.创建项目 第一种.引用appBase项目即可 第二种.将appBase的jar文件copy到libs下 我用的第二种,如上图所示. 2.代码生成 通过代码生成器生成Activity.Presenter.Adapte

Android Studio快速开发之道

概述 现如今开发越来越追求效率和节奏,节省出时间做更多的事情,除了开发技术上的封装等,开发工具的使用技巧也是很重要的,今天就根据自己的经验来给大家介绍一下Android Studio快速开发之道. Postfix completion 介绍 Postfix completion 是IntelliJ IDEA很早就有的功能,该功能基于已经输入的表达式和你添加的后缀来实现另一个你想要的表达式.例如在布尔表达式之后加上后缀if就是if语句 . 常用后缀介绍 下面介绍一下个人工作中觉得比较常用的几个后缀

Android快速开发之appBase——(3).详解IHolder和IData

Android快速开发之appBase--(3).详解IHolder和IData IHolder和IData是AVLib的两个组件,在前面已经使用过了,那么这一篇将会详细说明这两个组件的用法. IHolder IHolder是AVLib中View自动绑定的组件规范,所有@Id使用只能存在IHolder派生的类中. 源码 package com.snicesoft.avlib.rule; /** * @author zhe * @since 2015年4月15日 上午9:54:17 * @vers