加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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")
                                                        });

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读