检索实体列表
在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());
如果您愿意,也可以使用扩展方法:
public static IEnumerable RetrieveMultiple (this IOrganizationService service, QueryBase query) where T : Entity { return service.RetrieveMultiple(query) .Entities .Select(item => item.ToEntity ()); }
用法:
var contacts = service.RetrieveMultiple(new QueryExpression { EntityName = "contact", ColumnSet = new ColumnSet("firstname") });
实际上,MSDN上的SDK中有很多材料可以显示如何查询实体。
创建查询以检索数据
使用LINQ构建查询 – 主要是早期绑定的示例
API提供了三种或多或少相同的方式来查询数据库(LINQ,FetchXml和QueryExpression),尽管有一些限制(例如,参见LINQ限制 ),您只能通过使用本地安装和本机SQL来解决这些问题。调用。
但是,对于您提供的具有空电话号码的帐户的示例,三种支持的查询方法中的任何一种都可以使用。
上述就是C#学习教程:检索实体列表分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1034172.html