将实体集转换为Ilist,其中Entity Collection未实现IEnumerable

时间:2012-06-21 05:34:59

标签: c# dynamics-crm

我有一个Entity收藏像这样: EntityCollection 用户;

我想将其转换为Ilist,如下所示:

systemUsers = new List<CrmSdkTypeProxy.SystemUser>(); 

其中CrmSdkTypeProxy.SystemUserEntity的类型。但是,我的Entity集合源自dll Microsoft.Xrm.Sdk,但未实现IEnumerable。我使用的是mscrm 2011年具体dlls

如何创建这样的列表:.List<CrmSdkTypeProxy.SystemUser>

3 个答案:

答案 0 :(得分:3)

从我从http://msdn.microsoft.com/en-us/library/microsoft.xrm.sdk.entitycollection_members.aspx和我的头顶收集的内容:

var myList = (from t in myEntityCollection.Entities select t as CRMSDKTypeProxy.SystemUser).ToList();

和linq-less:

var myList = new List<CRMSDKTypeProxy.SystemUser>(myEntityCollection.Entities);

答案 1 :(得分:3)

这对我有用。

实体是DataCollection<Entity>,您可以将其转换为IEnumerable,然后使用ToList函数创建与您需要的IList接口匹配的列表。< / p>

return service.RetrieveMultiple(query)
                                .Entities
                                .Select(item => item.ToEntity<SystemUser>())
                                .ToList<SystemUser>();

答案 2 :(得分:0)

最后......遍历数据收集并将单个值添加到Ilist