我有一个如下的数据结构:
public abstract class Vehicle { }
public class Car : Vehicle { }
public class MotorCycle : Vehicle { }它与breezejs一起工作得很好,但是当我想要从缓存中获取实体时:
function getLocal() {
var entity = manager.getEntityByKey("Vehicle", id);
}如果使用Vehicle(基类)作为资源参数,则无法找到实体,而使用Car或MotorCycle则可以。
我发现,在getEntityByKey函数(breezejs/EntityManager.js)中
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);
}
};行:
var subtypes = entityKey._subTypes;_subTypes是用camelCase编写的,由于属性被定义为_subtypes (lowerCase),因此它们从未定义过。如果我更改为_subtypes,该函数将按预期完美地工作。
这是一个bug,还是我漏掉了什么?
发布于 2013-07-09 02:43:03
看起来像窃听器。我们将在下一个版本中修复此问题。..。感谢你找到它。:)
https://stackoverflow.com/questions/17516190
复制相似问题