首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在缓存中找不到子类型实体

在缓存中找不到子类型实体
EN

Stack Overflow用户
提问于 2013-07-08 04:41:53
回答 1查看 119关注 0票数 0

我有一个如下的数据结构:

代码语言:javascript
复制
public abstract class Vehicle { }
public class Car : Vehicle { }
public class MotorCycle : Vehicle { }

它与breezejs一起工作得很好,但是当我想要从缓存中获取实体时:

代码语言:javascript
复制
function getLocal() {
    var entity = manager.getEntityByKey("Vehicle", id);   
}

如果使用Vehicle(基类)作为资源参数,则无法找到实体,而使用Car或MotorCycle则可以。

我发现,在getEntityByKey函数(breezejs/EntityManager.js)中

代码语言:javascript
复制
proto.getEntityByKey = function () {
    var entityKey = createEntityKey(this, arguments).entityKey;
    var group;
    var subtypes = entityKey._subTypes;
    if (subtypes) {
        for (var i = 0, j = subtypes.length; i < j; i++) {
            group = this._findEntityGroup(subtypes[i]);
            // group version of findEntityByKey doesn't care about entityType
            var ek = group && group.findEntityByKey(entityKey);
            if (ek) return ek;
        }
    } else {
        group = this._findEntityGroup(entityKey.entityType);
        return group && group.findEntityByKey(entityKey);
    }
};

行:

代码语言:javascript
复制
var subtypes = entityKey._subTypes;

_subTypes是用camelCase编写的,由于属性被定义为_subtypes (lowerCase),因此它们从未定义过。如果我更改为_subtypes,该函数将按预期完美地工作。

这是一个bug,还是我漏掉了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-09 02:43:03

看起来像窃听器。我们将在下一个版本中修复此问题。..。感谢你找到它。:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17516190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档