Angularjs BreezeJS:更改元数据存储中的枚举文本值

Angularjs BreezeJS:更改元数据存储中的枚举文本值,angularjs,breeze,Angularjs,Breeze,我非常喜欢BreezeJS,看到我的枚举值显示为文本值而不是顺序值,我感到非常惊讶!我希望能够在客户端打开元数据存储,获取枚举并修改其文本属性以便于显示 目前是否可能?从我的研究来看,似乎没有,但我想知道是否有一个简单的解决办法。我尝试的所有方法都涉及大量的黑客攻击和服务器端属性,但都没有效果,或者解决方案似乎过于复杂,不值得这么做。以下是我所说的如何从原始元数据中获取枚举值 枚举值在EF生成并发送到Breeze客户端的元数据中可用。我同意Breeze应该自动拾取它们并将它们放在某个地方,这样您

我非常喜欢BreezeJS,看到我的枚举值显示为文本值而不是顺序值,我感到非常惊讶!我希望能够在客户端打开元数据存储,获取枚举并修改其文本属性以便于显示


目前是否可能?从我的研究来看,似乎没有,但我想知道是否有一个简单的解决办法。我尝试的所有方法都涉及大量的黑客攻击和服务器端属性,但都没有效果,或者解决方案似乎过于复杂,不值得这么做。

以下是我所说的如何从原始元数据中获取枚举值

枚举值在EF生成并发送到Breeze客户端的元数据中可用。我同意Breeze应该自动拾取它们并将它们放在某个地方,这样您就不必对它们发出单独的请求,也不必从传递到MetadataStore.fetchMetadata成功回调的原始元数据中提取它们。这是我们的积压工作

同时,你必须亲自去拿。有一个例子说明了如何:

/*********************************************************
* Can can get enum types from raw EF-generated metadata
* Related to feature request #2271: Extract enum values from server metadata
*************************************************************/
asyncTest("can get enum type from raw EF-generated metadata", function() {

    var serviceName = testFns.foosMetadataServiceName;
    var store = new breeze.MetadataStore();
    store.fetchMetadata(serviceName)
        .then(metaSuccess, metaFail).fail(handleFail).fin(start);

    function metaSuccess(rawMetadata) {
        ok(true, "foos metadata fetched");
        var enumType = rawMetadata.schema && rawMetadata.schema.enumType;
        if (enumType && enumType.name ==='Color') {
            var members = enumType.member;
            ok(members.length,
                "should have several members; members are: " + JSON.stringify(members));
        } else {
            ok(false, "metadata should have had one enumType, 'Color'.");
        }
    }

    function metaFail(error) {
        ok(false, "foos metadata fetch failed: " + error.message);
    }

});

下面是关于如何从中的原始元数据获取枚举值的内容

枚举值在EF生成并发送到Breeze客户端的元数据中可用。我同意Breeze应该自动拾取它们并将它们放在某个地方,这样您就不必对它们发出单独的请求,也不必从传递到MetadataStore.fetchMetadata成功回调的原始元数据中提取它们。这是我们的积压工作

同时,你必须亲自去拿。有一个例子说明了如何:

/*********************************************************
* Can can get enum types from raw EF-generated metadata
* Related to feature request #2271: Extract enum values from server metadata
*************************************************************/
asyncTest("can get enum type from raw EF-generated metadata", function() {

    var serviceName = testFns.foosMetadataServiceName;
    var store = new breeze.MetadataStore();
    store.fetchMetadata(serviceName)
        .then(metaSuccess, metaFail).fail(handleFail).fin(start);

    function metaSuccess(rawMetadata) {
        ok(true, "foos metadata fetched");
        var enumType = rawMetadata.schema && rawMetadata.schema.enumType;
        if (enumType && enumType.name ==='Color') {
            var members = enumType.member;
            ok(members.length,
                "should have several members; members are: " + JSON.stringify(members));
        } else {
            ok(false, "metadata should have had one enumType, 'Color'.");
        }
    }

    function metaFail(error) {
        ok(false, "foos metadata fetch failed: " + error.message);
    }

});

我们正在使用微风与NHibernate和wand做同样的事情。为NHibernate生成的元数据是标准的breeze元数据,不包含模式部分。有什么办法吗

编辑:为了解决我们的问题,我在元数据中添加了一个所有使用的枚举列表,如structuralTypes节点。然后,当检索元数据时,我们将其缓存在客户机上。


谢谢

我们正在使用微风与NHibernate和魔杖来做同样的事情。为NHibernate生成的元数据是标准的breeze元数据,不包含模式部分。有什么办法吗

编辑:为了解决我们的问题,我在元数据中添加了一个所有使用的枚举列表,如structuralTypes节点。然后,当检索元数据时,我们将其缓存在客户机上。


谢谢

如果使用NHibernate,您将如何获取枚举值?如果使用NHibernate,您将如何获取枚举值?