c# – 检索实体列表
发布时间:2020-12-16 01:47:23 所属栏目:百科 来源:网络整理
导读:在CRM 2011中,我可以使用EarlyBoundEntities执行常规的创建,更新,删除操作.但是,我似乎无法找到使用相同类型的代码检索实体列表的示例.有没有办法使用EarlyBoundEntities检索类型的项目列表? 我查看了MSDN,如果我已经知道它的GUID,我可以找到的是如何检索实
在CRM 2011中,我可以使用EarlyBoundEntities执行常规的创建,更新,删除操作.但是,我似乎无法找到使用相同类型的代码检索实体列表的示例.有没有办法使用EarlyBoundEntities检索类型的项目列表?
我查看了MSDN,如果我已经知道它的GUID,我可以找到的是如何检索实体. // Retrieve the account containing several of its attributes. ColumnSet cols = new ColumnSet( new String[] { "name","address1_postalcode","lastusedincampaign" }); Account retrievedAccount = (Account)_service.Retrieve("account",_accountId,cols); Console.Write("retrieved,"); 例如,我如何获得没有电话号码的所有帐户的列表? 解决方法
如果您使用servicecontextname参数生成了早期绑定的代理类,则可以使用LINQ进行查询.
var context = new XrmServiceContext(service); var accounts = context.AccountSet.Where(item => item.Telephone1 == null); 否则,如果您仍想使用其他查询方法(如QueryExpression),则可以使用LINQ将所有实例强制转换为所需的早期绑定类型. var contacts = service.RetrieveMultiple(new QueryExpression { EntityName = "contact",ColumnSet = new ColumnSet("firstname") }) .Entities .Select(item => item.ToEntity<Contact>()); 如果您愿意,也可以使用扩展方法: public static IEnumerable<T> RetrieveMultiple<T>(this IOrganizationService service,QueryBase query) where T : Entity { return service.RetrieveMultiple(query) .Entities .Select(item => item.ToEntity<T>()); } 用法: var contacts = service.RetrieveMultiple<Contact>(new QueryExpression { EntityName = "contact",ColumnSet = new ColumnSet("firstname") }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |