在进行代码分析时,我在一个方法中使用了以下代码对于这段代码
,它给了我以下消息CA2000在失去作用域之前处理对象"AddressHistory.UpdateFlagInApplicationEntity (bool)",电话System.IDisposable.Dispose on object 'new OrganizationService("Xrm")'在所有引用它之前范围。MasterPortal addreshistory .aspx. cs269
我用using来解决这个问题,但是对于'new OrganizationService '仍然显示这个消息,是不是因为在使用部分我写了两次new关键字,我需要单独声明吗??
请帮我一下
if (applicationDetails.Entities.Count > 0)
{
Guid applicationId = applicationDetails.Entities[0].Id;
if (applicationId != null)
{
using (var updateContext = new OrganizationServiceContext(new OrganizationService("Xrm")))
{
var applicationToupdate = new Entity(ApplicationsEntity.ENTITYNAME) { Id = applicationId };
applicationToupdate[ApplicationsEntity.SIA_SECTIONCOMPLETEDADDRESSES] = flagValue;
updateContext.Attach(applicationToupdate);
updateContext.UpdateObject(applicationToupdate);
updateContext.SaveChanges();
}
}
}
您说您已经在OrganizationService
实例中使用了using
。只需记住将该实例传递给OrganizationServiceContext
构造函数,如下所示:
if (applicationDetails.Entities.Count > 0)
{
Guid applicationId = applicationDetails.Entities[0].Id;
if (applicationId != null)
{
using (var service = new OrganizationService("Xrm"))
using (var updateContext = new OrganizationServiceContext(service))
{
var applicationToupdate = new Entity(ApplicationsEntity.ENTITYNAME) { Id = applicationId };
applicationToupdate[ApplicationsEntity.SIA_SECTIONCOMPLETEDADDRESSES] = flagValue;
updateContext.Attach(applicationToupdate);
updateContext.UpdateObject(applicationToupdate);
updateContext.SaveChanges();
}
}
}