我想将我的EntityCollection转换或复制到Dictionary。 我的代码如下。 请同样建议。
Dictionary<string, string> dictionary = new Dictionary<string, string>();
EntityCollection contentCollection = orgService.RetrieveMultiple(new FetchExpression(contentQuery));
if (contentCollection != null && contentCollection.Entities != null && contentCollection.Entities.Count > 0)
{
foreach (Entity contents in contentCollection.Entities)
{
dictionary.Add(content.Attributes(0).key,content.Attributes(0).value );
}
}
答案 0 :(得分:1)
它可以简短:
EntityCollection contentCollection = orgService.RetrieveMultiple(new FetchExpression(contentQuery));
Dictionary<Guid, Entity> dictionary = contentCollection.Entities.ToDictionary(entity => entity.Id);
您无需检查contentCollection
及其Entities
集合,因为方法RetrieveMultiple
始终返回非空值或未能抛出异常。
或者你可以把它写成一个声明:
var dictionary = orgService
.RetrieveMultiple(new FetchExpression(contentQuery))
.Entities
.ToDictionary(entity => entity.Id);
答案 1 :(得分:0)
我有一个开源项目可以使这更简洁:
var dictionary = orgService
.GetEntities<Entity>(new FetchExpression(contentQuery)
.ToDictionary(e => e.Id);
您可以从GitHub下载它:https://github.com/daryllabar/XrmUnitTest(参考DLaB.Xrm库)
或NuGet:Install-Package DLaB.Xrm -Version 1.0.1
获取实体处理检索并返回一个List(用于后期绑定)或List(或者您为早期绑定检索的任何类型)