CRM练习Chapter3查询数据和Execute操作_第1页
CRM练习Chapter3查询数据和Execute操作_第2页
CRM练习Chapter3查询数据和Execute操作_第3页
CRM练习Chapter3查询数据和Execute操作_第4页
CRM练习Chapter3查询数据和Execute操作_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、练习 3.1 :使用 QueryExpression分步操作步骤 1:使用 Visual Studio 2010 打开 PurchasingManager - StartingSolution 项目该启动项目位于PurchasingManager。如果这是您第一次打开Visual Studio 2010,您可能必须设置“常规开发设置”。在 此情况下,选择C#。步骤2 :设置“组织服务” Web服务使用以下代码找到代码中的GetOrganization函数:Uri organizationUri = newUri( HYPERLINK http:/CRMServer/AdventureWorks

2、Cycles/XRMServices/2011/Organiza http:/CRMServer/AdventureWorksCycles/XRMServices/2011/Organiza tion.svc);var cred = new ClientCredentials();cred.Windows.ClientCredential = newNetworkCredential(administrator, password1);OrganizationServiceProxy _serviceproxy = new OrganizationServiceProxy(organizati

3、onUri, null, cred, null);IOrganizationService _service = (IOrganizationService)_serviceproxy; return _service;步骤3 :编写QueryExpressionExample 方法, 在QueryExpressionExample方法内,请确保包含以下代码,以便执行以下步骤。为 “fUllname”和 “parentcustomerid”字段创建列集。创建 “ConditionExpression”,其中 “AttributeName”设为 jobtitle,运算符为 Like, 并且值设为

4、“采购经理”。基于“ConditionExpression”生成 “FilterExpression”。, 为筛选器创建并设置“QueryExpression”。, 为联系人实体调用 “RetrieveMultiple”并返回 “EntityCollection”。QueryExpression qe = new QueryExpression(contact);ColumnSet cs = new ColumnSet();FilterExpression fe = new FilterExpression();ConditionExpression ce = new ConditionExp

5、ression();cs.AddColumns(fullname,parentcustomerid);ce.AttributeName =jobtitle;ce.Operator = ConditionOperator.Equal;ce.Values.Add(采购经理);fe.AddCondition(ce);qe.ColumnSet = cs;qe.Criteria.AddFilter(fe);EntityCollection contacts = _service.RetrieveMultiple(qe);步骤4 :显示信息在返回联系人后,在EntityCollection中循环,显示返回

6、的每个联系人的全名。foreach (var a in contacts.Entities) (Console.WriteLine(a.Attributesfullname.ToString(); )步骤5 :生成应用程序并进行测试,按键盘上的F5,生成应用程序并进行测试。,运行控制台应用程序并查看输出结果。“更练习3.2:使用LINQ执行“创建”、“读取” 新”和“删除”操作“更分步操作步骤1 :创建使用VisualStudio2010的控制台应用程序单击“开始”菜单,然后单击 “Microsoft Visual Studio 2010”。依次单击“文件”、“打开”、“项目/解决方案”。浏览

7、到LINQMethod,打开解决方案文件。步骤2 :设置Web服务找到注释“执行的操作:创建GetOrganization方法以实例化OrganizationService”, 将其替换为用来设置“组织服务”的代码。使用以下代码。Uri organizationUri = newUri( HYPERLINK http:/CrmServer/AdventureWorksCycles/XRMServices/2011/Organiza http:/CrmServer/AdventureWorksCycles/XRMServices/2011/Organiza tion.svc);var cred

8、= new ClientCredentials();cred.Windows.ClientCredential = newNetworkCredential(administrator“, ”password1”);OrganizationServiceProxy _serviceproxy = newOrganizationServiceProxy(organizationUri, null, cred, null);_serviceproxy.EnableProxyTypes();IOrganizationService _service = (IOrganizationService)_

9、serviceproxy;return _service;不要忘记了包括“_serviceproxy.EnableProxyTypes();。没有这一行,您将无法使用 早期绑定。步骤3 :编写用来创建三个联系人的代码在LinqUpdate方法内,展开标题为“执行的操作:使用LINQ创建联系人”的区域。, 在该区域内,包括以下代码来创建三个联系人:Alan Smith、Ben Andrews和Colin Wilcoxo/创建 Alan Smith var contact = new Contact() (FirstName =Alan,LastName =Smith,JobTitle = 采购主

10、管” );orgContext.AddObject(contact);/创建 Ben Andrewsvar contact2 = new Contact() (FirstName =Ben,LastName =Andrews,JobTitle = 采购主管” );orgContext.AddObject(contact2);/创建 Colin Wilcox var contacts = new Contact() (FirstName=Colin,LastName = Wilcox,JobTitle = 采购主管” );orgContext.AddObject(contact3); orgCo

11、ntext.SaveChanges();步骤4 :通过将职务设置为“采购负责人”,更新联系人,在代码中,找到标题为“执行的操作:更新联系人并将他们的职务设置为采购负 责人”的区域并展开。, 在代码中,使用LINQ构造一个查询,在Microsoft Dynamics CRM中查找职务为空 的所有联系人。,在这些联系人中循环,将职务设置为“采购负责人”。var queryPurchasingManager = from c in orgContext.ContactSet where (c.JobTitle = “采购主管”) select c;foreach (var a in queryPur

12、chasingManager) a.JobTitle =采购负责人;orgContext.UpdateObject(a);Console.WriteLine(0 的职务已更新为采购负责人,afullname);)orgContext.SaveChanges();步骤5 :删除职务为“采购负责人”的联系人找到标题为“删除在创建部分创建的联系人”的区域并展开。在该区域中,使用LINQ查找职务为“采购负责人”的联系人并删除。var deleteQuery = from c in orgContext.ContactSet where (c.JobTitle=采购负责人”) select c;fore

13、ach(var c in deleteQuery) orgContext.DeleteObject(c);orgContext.SaveChanges();步骤6 :生成应用程序并进行测试在运行应用程序之前,在代码中每个区域的结尾包括断点,使您能够评估所调用的 CRUD方法的进度。确保打开了 Microsoft Dynamics CRM应用程序,并且正在查看“可用联系人”视 图。按键盘上的F5,生成应用程序并进行测试。运行控制台应用程序并观察输出结果。在创建记录后到达第一个断点时,转到应用程序,刷新“可用联系人”视图,您会 注意到为 Alan Smith、Ben Andrews和 Colin

14、Wilcox创建了联系人。返回到Visual Studio 2010,逐步执行到下一个断点。返回到应用程序,打开Alan Smith的联系人记录,会注意到他的职务为“采购负责 人”。返回到Visual Studio 2010,逐步执行到下一个断点。返回到“可用联系人”视图,刷新视图,会注意到Alan Smith、Ben Andrews和 Colin Wilcox不再作为联系人存在。练习3.3:使用FetchXML分步操作步骤 1 :在 VisualStudio2010中打开此练习的StartingSolution文件打开 Visual Studio 2010。单击“打开”,然后单击“项目/解决

15、方案”,浏览到PurchasingAssistant。打开解决方案文件。步骤2 :编写实例化组织服务的代码找到标题为“执行的操作:创建实例化组织服务的代码”的区域,然后展开。在该区域内包括以下代码:Uri organizationUri = newUri( HYPERLINK http:/CrmServer/AdventureWorksCycles/XRMServices/2011/Organiza http:/CrmServer/AdventureWorksCycles/XRMServices/2011/Organiza tion.svc);var cred = new ClientCred

16、entials();cred.Windows.ClientCredential = newNetworkCredential(administrator, password1);OrganizationServiceProxy _serviceproxy = newOrganizationServiceProxy(organizationUri, null, cred, null);IOrganizationService _service = (IOrganizationService)_serviceproxy;return service;步骤3 :构造FetchXML查询字符串找到标题

17、为“执行的操作:创建查询并在结果中循环”的区域,然后展开。在该区域内,包括以下用来构造FetchXML查询的代码,然后在结果中循环: string fetchXml = ; EntityCollection contactlist =(EntityCollection)_service.RetrieveMultiple(new FetchExpression(fetchXml);foreach (var cnt in contactlist.Entities) (Console.WriteLine(cnt.Attributesfullname.ToString(); )步骤4 :生成应用程序并

18、进行测试按键盘上的F5,生成应用程序并进行测试。运行控制台应用程序并观察输出结果。练习3.4:使用筛选视图分步操作步骤 1 :在 VisualStudio2010中打开此练习的 StartingSolution文件打开 Visual Studio 2010。单击“打开”,然后单击“项目/解决方案”,浏览到X:LabFilesExtending CRMChapter 3C#AccountSearching-FilteredViews-CS-StartingSolution。打开解决方案文件。步骤2 :创建SQL连接字符串找到注释“执行的操作:向本地CRM组织数据库输入连接字符串”并将其替换为 创

19、建SQL命令字符串的代码。使用以下代码。SqlConnection connection = new SqlConnection(Data Source=localhost;Initial Catalog=Demo_MSCRM;Integrated Security=True);connection.Open();return connection;步骤3 :创建用来创建SQL命令的代码,执行命令,填充Windows表单上的网格视图找到注释“执行的操作:调用连接字符串创建方法,查询filteredaccount视图并 填写数据网格视图”,将其替换为执行SQL命令并填充网格视图的代码。SqlCo

20、nnection connection = CreateConnection();string sqlQuery = select name, address1_city, address1_stateorprovince from filteredaccount where name like % + txtSearch.Text + %;SqlDataAdapter adapter = new SqlDataAdapter(sqlQuery, connection);DataTable dtAccount = new DataTable();adapter.Fill(dtAccount);

21、connection.Close();dgvAccountList.DataSource =dtAccount;dgvAccountList.Visible = true;dgvAccountList.Focus();步骤4 :生成应用程序并进行测试按键盘上的F5,生成应用程序并进行测试。运行Windows应用程序并查看输出结果。在“搜索”文本框中,输入“商店”,然后单击“搜索”。要观察代码的进度,请在代码中包括断点。练习3.5:使用请求和响应C#分步说明步骤 1 :在 VisualStudio2010中打开此练习的StartingSolution文件打开 Visual Studio 2010

22、。单击“打开”,然后单击“项目/解决方案”,浏览到ExecuteMethod。打开解决方案文件。步骤2 :编写实例化组织服务的代码找到标题为“执行的操作:创建实例化组织服务的代码”的区域,然后展开。在该区域内包括以下代码:Uri organizationUri = newUri( HYPERLINK http:/CrmServer/AdventureWorksCycles/XRMServices/2011/Organiza http:/CrmServer/AdventureWorksCycles/XRMServices/2011/Organiza tion.svc);var cred = ne

23、w ClientCredentials();cred.Windows.ClientCredential = newNetworkCredential(administrator”, “password1”);OrganizationServiceProxy _serviceproxy = newOrganizationServiceProxy(organizationUri, null, cred, null);IOrganizationService _service = (IOrganizationService)_serviceproxy;return service;步骤3 :创建Ge

24、tAllAcctAttributes 方法找到标题为“执行的操作:获取客户属性”的区域,并展开该区域。 创建一个ColumnSet并用所传入的字符串数组填充它。使用 ColumnSet 创建一个 QueryExpression。创建 “RetrieveMulitpleRequest”对象。将“区4比$1”对象的“Query”属性设置为“QueryExpression”。执行该Requesto返回所获得响应的EntityCollection部分。使用以下代码。ColumnSet cs = new ColumnSet(attributes);QueryExpression qe = new Que

25、ryExpression(account);qe.ColumnSet = cs;RetrieveMultipleRequest rmr = new RetrieveMultipleRequest();rmr.Query = qe;RetrieveMultipleResponse rResponse =(RetrieveMultipleResponse)_service.Execute(rmr);return rResponse.EntityCollection;步骤4 :创建GetAllUserAttributes 方法找到标题为“执行的操作:获取用户属性”的区域,并展开该区域。创建一个Col

26、umnSet并用所传入的字符串数组填充它。创建一个ConditionExpression来排除已禁用的记录。创建一个ConditionExpression来排除其全名位于所传入excludedUsers数组中的 记录。生成一个FilterExpression,将以前用逻辑“与”运算创建的两个 ConditionExpression 结合起来。使用ColumnSet (根据所传入的属性参数创建)和FilterExpression (在上一步中 仓建)仓|建 QueryExpression。返回所获得响应的EntityCollection部分。使用以下代码。ColumnSet cs = new ColumnSet(attributes);/*Set the condition for the retrieval to be when the system user is not disabled*/ConditionExpression ce = new ConditionExpression(isdisabled, ConditionOperator.Equal, new object false );ConditionExpression excluded = new C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论