当使用.select()子句时,Breeze不返回observable

时间:2013-09-27 08:55:18

标签: breeze

这是为CustomerStrings条目调用控制器的方法:

  var getCustStrings = function (custStrings, custId) {

        var query = EntityQuery.from('CustomerStrings')
                .where('CustomerID', '==', custId)
                .select('CustomerStringNumber, CustomerString1')
                .orderBy('CustomerStringNumber');

        return manager.executeQuery(query)
            .then(querySucceeded)
            .fail(queryFailed);

        function querySucceeded(data) {
            if (custstrings){
                console.log(data.results);
                custstrings(data.results);
            }

            console.log('Retrieved [CustomerStrings] from remote data source');
        }
    };

问题是,如果我使用.select(...)子句,返回的对象是普通的javascript对象,当我期望它们是dependentobservable时。

如果删除.select()子句,则返回的结果是正确的。

任何解决方案?

1 个答案:

答案 0 :(得分:1)

这正是select子句的工作原理。如果您想将返回的DTO映射回您的实体,只需在查询中添加toType('')子句

var query = entityQuery
    .from('CustomerStrings')
    .where(something)
    .select(whatever)
    .toType('CustomerStrings');