how to add extend breeze entity types with metadata pulled from property attributes

前端 未结 2 1819
情书的邮戳
情书的邮戳 2020-12-12 07:19

I want to get the custom attributes, mentioned below, in breeze dataService (client side).

namespace Tam.Framework.Web.Models
{
    [ViewAttribute(\"app/view         


        
2条回答
  •  心在旅途
    2020-12-12 07:46

    var manager = configureBreezeManager();
    
            function configureBreezeManager() {
    
            breeze.NamingConvention.camelCase.setAsDefault();
            var mgr = new breeze.EntityManager('api/breeze');
            model.configureMetadataStore(mgr.metadataStore);
            mgr.fetchMetadata(function (metadata) {
                return initializeMetadataStore(mgr.metadataStore, metadata);
            });
            return mgr;
        };
    
    
    
    
           function initializeMetadataStore(metadataStore, metadata) {
            breeze.NamingConvention.defaultInstance = breeze.NamingConvention.none;
            var metadataType, metadataProperty, entityProperty, i, j;
            for (i = 0; i < metadata.schema.entityType.length; i++) {
                metadataType = metadata.schema.entityType[i];
                var entityType = metadataStore.getEntityType(metadataType.name);
                for (j = 0; j < metadataType.property.length; j++) {
                    metadataProperty = metadataType.property[j];
    
                        entityProperty = entityType.getProperty(metadataProperty.name);
    
                    if (entityProperty) {
                        if (typeof metadataProperty.displayName !== 'undefined') {
                            entityProperty.displayName = metadataProperty.displayName;
                        }
                        if (typeof metadataProperty.displayOrder !== 'undefined') {
                            entityProperty.displayOrder = metadataProperty.displayOrder;
                        }
                        if (typeof metadataProperty.autoGenerateField !== 'undefined') {
                            entityProperty.autoGenerateField = metadataProperty.autoGenerateField;
                        }
                        if (typeof metadataProperty.allowEmptyStrings !== 'undefined') {
                            entityProperty.allowEmptyStrings = metadataProperty.allowEmptyStrings;
                        }
                    }
                }
            }
    
        }
    
    
    
    
    
            var readData = function (entityName, observableResults, showLog) {
    
            if (!entityName || !observableResults)
                return null;
    
            var query = new breeze.EntityQuery()
                .from(entityName);
    
    
            return manager.executeQuery(query)
             .then(querySucceeded)
             .fail(queryFailed);
        }
    
        function readEmployee() {
        return breezeDataService.readData("Employees", employees, true).then(function () {
    
            var propertyDisplayName = employees()[0].entityType.getProperty('lastName').displayName;//error displayName undefined
         }
        }
    

    when I get list of entity by readData function that list (observableResults[0]) have not any displayName but I add displayName and checked it by initializeMetadataStore function is correct

    FINALLY!!!!! I found it it because of breeze.NamingConvention.camelCase.setAsDefault();

提交回复
热议问题