繁体   English   中英

使用OData在Dynamics CRM中检索多个实体

[英]Retrieve Multiple Enitiies in Dynamics CRM using OData

我有一个功能区按钮命令,该命令执行javascript函数并在网格中传递选定的行。 我遍历该列表以创建$ select过滤器以发出RetrieveMultiple请求。 问题是每次我遇到以下错误

400:错误的请求:在位置1的类型'Microsoft.Xrm.Sdk.Entity'中不存在属性'id'

我尝试使用id而不是Id进行尝试,但仍然遇到相同的错误。 我的代码如下

function approveMultipleApplications(selectedApplicationReferences) {
    if (selectedApplicationReferences && selectedApplicationReferences.length > 0) {
        var filter = '';
        for (var i = 0; i < selectedApplicationReferences.length; i++) {
            filter += '(id eq guid\'' + selectedApplicationReferences[i].Id + '\')';
            if (i < selectedApplicationReferences.length - 1) {
                filter += ' or ';
            }
        }

        var options = "$select=new_assessmentcount,new_requiredassessmentcount&$filter=" + filter;
        try {
            SDK.REST.retrieveMultipleRecords("new_application", options, retrieveApplicationsCallBack, function (error) {
                alert(error.message);
            }, retrieveComplete);
        }
        catch (ex) {
            Xrm.Utility.alertDialog('Something went wrong, please try again or contact your administrator ' + ex, null);
        }
    }
    else {
        Xrm.Utility.alertDialog('You must select at least one application to approve', null);
    }
}

selectedApplicationReferences [i] .Id的格式为{guid-value}任何帮助或指导,不胜感激

该错误消息几乎可以找到:使用LogicalNameId而不是Id 在您的情况下,将为new_applicationId

filter += '(new_applicationId eq guid\'' + selectedApplicationReferences[i].Id + '\')';

由于数据库中实际上没有Id字段,因此可能会造成混淆。 如果使用例如早期绑定类,则会在幕后为您设置Id字段,这样可能会使您感到困惑。 OData端点不返回Id字段。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM