简体   繁体   English

Breeze.js-尝试使用“ any”运算符时出错-错误:无法获取属性'isAnonymous'的值:对象为null或未定义

[英]Breeze.js - getting error trying to use “any” operator - error: Unable to get value of the property 'isAnonymous': object is null or undefined

I am trying to use the "any" operator in Breeze to query a many table and I am getting the following error - TypeError: Unable to get value of the property 'isAnonymous': object is null or undefined 我试图在Breeze中使用“ any”运算符查询多个表,但出现以下错误-TypeError:无法获取属性'isAnonymous'的值:对象为null或未定义

The only stackoverflow question I can find that seems related is this one, but there is no solution to the isAnonymous issue because the poster did not provide more code: 我可以发现的唯一与此相关的stackoverflow问题是这个问题,但是没有对isAnonymous问题的解决方案,因为发布者未提供更多代码:

breeze projection : error selecting non scalar navigation properties 微风投影:选择非标量导航属性时出错

I am using Breeze 1.4.11 with Entity Framework 5 我在实体框架5中使用Breeze 1.4.11

The query I am trying to run is 我正在尝试运行的查询是

var getEntities = function (entitiesObservable) {
    var whereClause = "";

    whereClause = Predicate.create("t_entity_nm", "any", "frst_nm", "startsWith", "Frank");

    var query = EntityQuery.from("Entities")
                           .where(whereClause)
                           .expand("t_entity_nm");

    $('#loading-indicator').show();
    return manager.executeQuery(query)
                  .then(querySucceeded)
                  .fail(queryFailed);

    function querySucceeded(data) {
        $('#loading-indicator').hide();
        if (entitiesObservable) {
            entitiesObservable(data.results);
        }
        log("Retrieved [Entities] from remote data source", data, true);
    }
};

t_entity joins to t_entity_nm on entity_sys_key_id ...they are views...here are the view definitions t_entity加入到t_entity_nmentity_sys_key_id ......他们的观点......这里的视图定义

CREATE VIEW [dbo].[t_entity]
(     [entity_sys_key_id]
    , [pers_flag]
    , [dob_dt]
    , [birth_plc]
    , [sin]
    , [hsn]
    , [drv_lcnc_num]
    , [ap_vndr_num]
    , [ar_cstmr_num]
    , [sec_grp_sys_key_id]
    , [actv_flag]
    , [log_eff_dt]
    , [log_can_dt]
    , [log_upd_by]
    , [sys_del_flag]
    , [sys_ts] 
)
AS
SELECT 
      [entity_sys_key_id]
    , [pers_flag]
    , [dob_dt]
    , [birth_plc]
    , [sin]
    , [hsn]
    , [drv_lcnc_num]
    , [ap_vndr_num]
    , [ar_cstmr_num]
    , [sec_grp_sys_key_id]
    , [actv_flag]
    , [log_eff_dt]
    , [log_can_dt]
    , [log_upd_by]
    , [sys_del_flag]
    , [sys_ts] 
FROM [CMN_DEV].[dbo].[t_entity]

CREATE VIEW [dbo].[t_entity_nm] 
(
      [entity_nm_sys_key_id]
    , [entity_sys_key_id]
    , [entity_nm_typ_cd]
    , [saltn_cd]
    , [frst_nm]
    , [mid_nm]
    , [last_nm]
    , [firm_nm]
    , [nysiis_key]
    , [prmy_flag]
    , [sec_grp_sys_key_id]
    , [log_eff_dt]
    , [log_can_dt]
    , [log_upd_by]
    , [sys_del_flag]
    , [sys_ts] 
)
AS 
SELECT 
      [entity_nm_sys_key_id]
    , [entity_sys_key_id]
    , [entity_nm_typ_cd]
    , [saltn_cd]
    , [frst_nm]
    , [mid_nm]
    , [last_nm]
    , [firm_nm]
    , [nysiis_key]
    , [prmy_flag]
    , [sec_grp_sys_key_id]
    , [log_eff_dt]
    , [log_can_dt]
    , [log_upd_by]
    , [sys_del_flag]
    , [sys_ts] 
FROM [CMN_DEV].[dbo].[t_entity_nm]

The Breeze Controller looks like this: 微风控制器看起来像这样:

namespace MarketingPromotions.Controllers
{
    [BreezeController(MaxAnyAllExpressionDepth = 2)]
    public class BreezeController : ApiController
    {

    readonly EFContextProvider<OASIS_DEVEntities> _contextProvider =
            new EFContextProvider<OASIS_DEVEntities>();

        [HttpGet]
        public string Metadata()
        {
            return _contextProvider.Metadata();
        }
        #endregion

        [HttpGet]
        public IQueryable<t_entity> Entities()
        {
            return _contextProvider.Context.t_entity;
        }

        [HttpGet]
        public IQueryable<t_entity_nm> EntityNames()
        {
            return _contextProvider.Context.t_entity_nm;
        }
}

The code where it is breaking is in breeze.debug.js on the line -> 它打破的代码在网上的breeze.debug.js中->

if (entityType.isAnonymous) return;

where "this" is the frst_nm field in the following code snippet from breeze.debug.js: 其中“ this”是来自breeze.debug.js的以下代码片段中的frst_nm字段:

proto._validate = function(entityType) {
        // will throw if not found;
        if (this.isValidated) return;            
        this.isValidated = true;
        if (this.propertyPath) {
            if (entityType.isAnonymous) return;
            var prop = entityType.getProperty(this.propertyPath, true);
            if (!prop) {
                var msg = __formatString("Unable to resolve propertyPath.  EntityType: '%1'   PropertyPath: '%2'", entityType.name, this.propertyPath);
                throw new Error(msg);
            }
            if (prop.isDataProperty) {
                this.dataType = prop.dataType;
            } else {
                this.dataType = prop.entityType;
            }
        } else if (this.fnNodes) {
            this.fnNodes.forEach(function(node) {
                node._validate(entityType);
            });
        }
    };

This looks like a resource name issue. 这看起来像资源名称问题。 My guess is that you have not established a resource name/entity type mapping. 我的猜测是您尚未建立资源名称/实体类型映射。

Take a look at these links: 看一下这些链接:

http://www.breezejs.com/documentation/query-result-debugging http://www.breezejs.com/documentation/query-result-debugging

http://www.breezejs.com/sites/all/apidocs/classes/MetadataStore.html#method_setEntityTypeForResourceName http://www.breezejs.com/sites/all/apidocs/classes/MetadataStore.html#method_setEntityTypeForResourceName

and this one: http://www.breezejs.com/documentation/querying-locally under the subtopic: Resources names are not EntityType names 子主题: http : //www.breezejs.com/documentation/querying-locally ,子主题下: 资源名称不是EntityType名称

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

相关问题 JS错误:无法获取属性0的值:对象为null或未定义 - JS error: unable to get value of property 0: object is null or undefined Breeze.js 1.4.1属性未定义不为null - Breeze.js 1.4.1 properties undefined not null 无法获取属性“ length”的值:对象为null或未定义-Javascript错误 - Unable to get value of the property 'length': object is null or undefined - Javascript Error 脚本错误:“无法获取属性&#39;split&#39;的值:对象为null或未定义 - Script error: "Unable to get value of the property 'split': Object is null or undefined 无法获取属性&#39;offsetWidth&#39;的值:对象为null或未定义错误 - Unable to get value of the property 'offsetWidth' : object is null or undefined error 复选框“错误:无法获取属性&#39;已检查&#39;的值:对象为空或未定义” - Checkbox “Error: Unable to get value of the property 'checked': object is null or undefined” 错误:无法获取属性“长度:”对象的值为空或未定义 - Error: Unable to get value of the property 'length:' object is null or undefined IE9中Magento的Lightbox JS错误-无法获取属性“ 0”的值:对象为null或未定义 - Lightbox JS Error on Magento in IE9 - Unable to get value of the property '0': object is null or undefined Breeze.js返回错误&#39;; &#39;(分号+空格) - Breeze.js returns an error of '; ' (semicolon + space) Breeze.js OData v4错误 - Breeze.js OData v4 Error
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM