相同的請求,我需要將數據從一個SQL數據庫遷移到CRM 2011 我已經跑第一遍只將所需的字段,並從SQL數據庫標識符。 現在我應該檢索實體並使用查找更新值。檢查多條記錄存在於CRM 2011年
我使用批量操作(ExecuteMultipleRequest)執行插入和更新。 是否有類似的方式來檢查是否已經創建了一個實體集合,並且可能檢索它們的ID(如果是這種情況)?
單一實體檢查是真的放緩下來。
這是我用它來檢查記錄existin的方法:我已經做了一些這種類型的集成作業,以CRM的
/// <summary>
/// Check if the entity with the specified value on the specified field exists
/// </summary>
/// <param name="entityName">Name of the entity</param>
/// /// <param name="field">Field to be checked</param>
/// <param name="fieldValue">Value to be checked</param>
/// <returns>The GUID of the existing return if it exists, an empty one otherwise</returns>
public Guid CheckIfExisting(string entityName, string field, string fieldValue)
{
try
{
QueryExpression entityQuery = new QueryExpression(entityName);
entityQuery.ColumnSet = new ColumnSet(entityName + "id");
entityQuery.Criteria = new FilterExpression();
entityQuery.Criteria.AddCondition(field, ConditionOperator.Equal, fieldValue);
EntityCollection retrievedEntities = service.RetrieveMultiple(entityQuery);
if (retrievedEntities.Entities.Count >0 && retrievedEntities.Entities[0].Id != null)
return retrievedEntities.Entities[0].Id;
else
return Guid.Empty;
}
catch (Exception e)
{
Console.WriteLine("There was an exception of type" + e.GetType());
Console.WriteLine("Error message " + e.Message);
Console.WriteLine(e.StackTrace);
}
return Guid.Empty;
}
你可以分享你的代碼,您使用的檢查現有記錄。我們可以處理查詢以提高性能。另外SQL Server索引還可以幫助改善查詢時間。 – Scorpion