【问题标题】:Breeze.js with asp.net web api odata and code firstBreeze.js 与 asp.net web api odata 和代码优先
【发布时间】:2013-04-20 05:48:08
【问题描述】:

我目前正在研究与这些技术相关的概念验证。

我已经基本实现了本文中的建议,除了先使用 EF 代码。

Consuming an ASP.NET Web API OData Service with Breeze

一个例外,即

“未捕获的 TypeError:无法读取未定义的属性 'propertyRef'”

在执行这段客户端代码时被抛出:

<script type="text/javascript">
    var my = {}; //my namespace
    $(function () {
        debugger;
        var serverAddress = "/odata/";
        breeze.config.initializeAdapterInstances({ dataService: "OData" });
        var manager = new breeze.EntityManager(serverAddress);

        my.vm = {

            entities: ko.observableArray([]),
            load: function () {
                var query = breeze.EntityQuery.from("Customers");

                manager.executeQuery(query, function (data) {

                    var results = data.results;
                    $.each(data.results, function (i, c) {
                        my.vm.entities.push(c);
                    });

                })
                .fail(function (e) {

                    alert(e);
                }); ;
            }
        }

        my.vm.load();
        ko.applyBindings(my.vm);
    });

</script>

源于此在微风.debug.js

    function convertFromODataEntityType(odataEntityType, schema, metadataStore) {
    var shortName = odataEntityType.name;
    var ns = getNamespaceFor(shortName, schema);
    var entityType = new EntityType({
        shortName: shortName,
        namespace: ns
    });
    ---> **EXCEPTION HERE**--->var keyNamesOnServer = toArray(odataEntityType.key.propertyRef).map(__pluck("name"));
    toArray(odataEntityType.property).forEach(function (prop) {
        convertFromODataDataProperty(entityType, prop, schema, keyNamesOnServer);
    });

    toArray(odataEntityType.navigationProperty).forEach(function (prop) {
        convertFromODataNavProperty(entityType, prop, schema);
    });
    metadataStore.addEntityType(entityType);
    return entityType;
}

通过 url 查询 odata 服务返回我想要的结果,所以它似乎不是数据检索问题。

我已经进行了一些搜索,原因被认为是微风尚未处理继承的类型。

在我的例子中,我没有使用继承类型。

欢迎提出任何建议。

【问题讨论】:

    标签: asp.net-web-api odata code-first breeze


    【解决方案1】:

    这看起来像是没有为相关实体类型定义“键”的问题。是否在底层服务器端实体类型上定义了键?

    【讨论】:

      【解决方案2】:

      你说的没有定义键是对的。 查看浏览器中的 ~/odata/$metadata 未定义底层 CustomerId

      <Key>
       <PropertyRef Name="CustomerId"/>
      </Key>
      

      【讨论】:

        猜你喜欢
        • 2016-11-02
        • 1970-01-01
        • 1970-01-01
        • 2012-10-28
        • 2013-02-25
        • 1970-01-01
        • 2023-03-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多