在进行代码分析时,我在一种方法中遵循代码 它给了我关于这个代码段的消息
CA2000在丢失范围之前处理对象在方法中 'AddressHistory.UpdateFlagInApplicationEntity(bool)',调用 System.IDisposable.Dispose对象'new OrganizationService(“Xrm”)' 在所有引用它之前 范围。 MasterPortal AddressHistory.aspx.cs 269
我用过来解决这个问题, 但它仍然显示这条消息为'新的OrganizationService,是不是因为在使用部分我写了两个新关键字,我是否需要它单独声明?
请帮助我
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();
}
}
}
答案 0 :(得分:2)
您说您已经将using
与OrganizationService
实例一起使用了。请记住将该实例传递给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();
}
}
}