c# - IOrganisationService.Retrieve 记录不存在

标签 c# dynamics-crm dynamics-crm-2013

我编写了代码来检查 CRM 中是否存在记录。问题是 IOrganisationService.Retrieve 在找不到记录时返回错误而不是空值。我希望找不到多条记录,我不想先使用 try catch,然后再使用 catch 中的错误。

using (OrganizationServiceProxy serviceProxy = new OrganizationServiceProxy(OrganizationUri, HomeRealmUri, credentials, null))
            {
                IOrganizationService service = (IOrganizationService)serviceProxy;
                //Get record

                var record = service.Retrieve(entryId, guid, new ColumnSet(true)); //switch to var if no work
                //Check if record is not null/empty
                recordExists = !String.IsNullOrWhiteSpace(record.Id.ToString()); //<- does the record exist
            }

建议?

最佳答案

Retrieve 方法假定具有给定 ID 的记录实际存在于系统中。一般来说,它只会在两种情况下失败:

  1. 该记录已被其他用户或进程删除。
  2. 用户没有足够的读取权限。

当您需要查询可能不存在的数据或查询可以产生零、一个或多个记录时,请使用QueryExpression 查询;您可以使用 RetrieveMultiple 方法发出这些查询。如果愿意,您还可以使用 LINQ for CRM,它基本上包装了 QueryExpression 功能。

关于c# - IOrganisationService.Retrieve 记录不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39954462/

相关文章:

c# - Windows Phone 7 中的媒体播放器

javascript - 通过 Javascript 调用自定义操作时出现错误请求错误

dynamics-crm - 需要 Microsoft Dynamics CRM 中的操作的实时示例

javascript - 如何使一个部分占据 Dynamics CRM 表单编辑器中的整个空间

javascript - CRM 2013 基于选项集字段在 webresource 中创建一个输入字段

c# - API 维基词典网

c# - 为什么在通过方法组委托(delegate)调用时 GetType() 找不到类型?

c# - Silverlight + 位图缓存 : can't get it to work

javascript - window.parent.Xrm.Page.data.entity.getId() 在使用 CRM 2011 的 Javascript 中保存时为空

dynamics-crm-2011 - "Post"、 "PostFollow"和 "PostComment"有什么区别?