breeze导航属性有;“分离的”;在连续查询之间更改的状态
这个bug有点难以描述,但我会尽力描述它的顺序breeze导航属性有;“分离的”;在连续查询之间更改的状态,breeze,Breeze,这个bug有点难以描述,但我会尽力描述它的顺序 使用EntityManager em1,查询实体A及其nav属性(R1)实体B1 使用EntityManager em2,查询A并将其nav属性更改为B2。保存更改 使用EntityManager em1,仍然持有A和B1,查询A,包括其扩展的nav属性R1 在R1.subscribeChanges中,B2的正确新值将作为R1的值存在,但其状态为“分离” 好的,我已经试过了,但一直无法重新处理你的问题。根据您的描述: 使用EntityManager
好的,我已经试过了,但一直无法重新处理你的问题。根据您的描述:
test("query nav prop change and expand", function() {
var em1 = newEm();
var em2 = newEm();
var p = Predicate.create("freight", ">", 100).and("customerID", "!=", null);
var query = new breeze.EntityQuery()
.from("Orders")
.where(p)
.expand("customer")
.take(1);
stop();
var oldCust, newCust1a, newCust1b, order1, order1a, order1b;
em1.executeQuery(query).then(function(data) {
order1 = data.results[0];
oldCust = order1.customer;
ok(oldCust != null, "oldCust should not be null");
return em2.executeQuery(EntityQuery.fromEntityKey(order1.entityAspect.getKey()));
}).then(function(data2) {
order1a = data2.results[0];
ok(order1.entityAspect.getKey().equals(order1a.entityAspect.getKey()), "order keys should be the same");
var customerType = em2.metadataStore.getEntityType("Customer");
newCust1a = customerType.createEntity();
newCust1a.setProperty("companyName", "Test_compName");
order1a.setProperty("customer", newCust1a);
return em2.saveChanges();
}).then(function (sr) {
em1.entityChanged.subscribe(function(args) {
var entity = args.entity;
ok(entity != null, "entity should not be null");
ok(entity.entityAspect.entityState != EntityState.Detached, "entityState should not be detached");
});
return em1.executeQuery(query);
}).then(function(data3) {
order1b = data3.results[0];
ok(order1b == order1, "should be the same order");
newCust1b = order1b.customer;
ok(newCust1a.entityAspect.getKey().equals(newCust1b.entityAspect.getKey()), "customer keys should be the same");
ok(newCust1b != null, "newCust1b should not be null");
ok(newCust1b.entityAspect.entityState.isUnchanged(), "should be unchanged");
}).fail(testFns.handleFail).fin(start);
});