在此种情况下,可能因为没有正确设置 Dynamics 365 的连线,导致批量更新不起作用。可以检查连接字符串和实体的导出/导入设置是否正确。同时,需要始终将导入的实体与 Dynamics 365 中的实体匹配。
以下是一个示例,用于批量更新 Dynamics 365 中的实体:
using Microsoft.Xrm.Sdk;
using Microsoft.Crm.Sdk.Messages;
using Microsoft.Xrm.Sdk.Query;
namespace UpdateRecords
{
class Program
{
static void Main(string[] args)
{
//set up connection to Dynamics 365
IOrganizationService service = GetService();
//create query to retrieve all records to be updated
QueryExpression query = new QueryExpression("entityname");
query.ColumnSet.AddColumns("field1", "field2", "field3");
//retrieve all records that match query
EntityCollection results = service.RetrieveMultiple(query);
//loop through all retrieved records
foreach (Entity entity in results.Entities)
{
//update fields of entity
entity["field1"] = "new value";
entity["field2"] = "new value";
entity["field3"] = "new value";
//create update request for entity
UpdateRequest update = new UpdateRequest { Target = entity };
//execute update request
service.Execute(update);
}
}
static IOrganizationService GetService()
{
//set up Dynamics 365 connection string
string connectionString = "AuthType=OAuth;Username=;Password=;Url=;AppId=;RedirectUri=;";
//create organization service manager based on connection string
CrmServiceClient crmService = new CrmServiceClient(connectionString);
//return organization service
return crmService.OrganizationWebProxyClient != null ? (IOrganizationService)crmService.OrganizationWebProxyClient : (IOrganizationService)crmService.OrganizationServiceProxy;
}
}
}