breeze-brideg-angular2 : нужно ли создавать классы сущностей breeze

нужно ли создавать классы сущностей breeze при использовании breeze-brideg-angular2, потому что иначе как я получу нижеприведенную строку кода, работающую в предлагаемом решении на https://github.com/Breeze/breeze.bridge.angular2/blob/master/README.md

import { Customer } from './entities'; 

2 ответа

  1. Этот фрагмент предполагает, что вы создали классы для объектов модели. Такие классы не требуются, но они, безусловно, полезны.

    Вы можете создать их вручную, и это не трудно.

    Во многих случаях вы можете сгенерировать их из серверных классов #C с помощью инструмента, который, по моему мнению, описан в приведенном примере TempHire (код там наверняка).

    Лучшая документация помогла бы, мы согласны.

  2. Я недавно боролся с тем же вопросом. Я не использовал единицу работы, а скорее один репозиторий-dbContext, как показано в Примере SPA Pluralsight Джона папы для 1.x. Проект модели, на который ссылается проект данных, скомпилированный в данные.файл DLL

    Попробовать это:

    (Я сделал это с угловой cli генерируется проект)
    Возьмите всю папку tools из примера temphire и поместите ее в папку проекта. Убедитесь, что вы выполнили установку npm для руля, как предложено в metadatagenerator.exe docs.

    скопируйте пакет.JSON скрипты: строки для метаданных: сущности: и metadata-entities:

    они вам понадобятся, и вам придется настроить как путь к вашей модели данных, так и имя самой библиотеки dll.

     "metadata": ".\tools\bin\MetadataGenerator.exe..\CFSWH.Web\bin\Debug\CFSWH.Data.dll -o metadata.json",
    "entities": "node ./tools/tsgen.js",
    "metadata-entities": "npm run metadata && npm run entities"
    

    Как вы, вероятно, знаете, есть несколько хитрых строк в dbContext. Мои первые неудачи были вызваны забыванием этого и использованием типичного обратного спроектированного dbcontext из моей базы данных SQL, в которой не было этих строк:

    public CFS_WHContext() : base(nameOrConnectionString: "CFS_WH") { }
    
        static CFS_WHContext()
        {
            var type1 = typeof(System.Data.Entity.SqlServer.SqlProviderServices);
            Database.SetInitializer<CFS_WHContext>(null);
        }
    

    В папке tools необходимо настроить tsgen.JS файл

    tsGen.generate({
        inputFileName: './metadata.json',
        outputFolder: './src/app/core/entities',
        camelCase: true,
        kebabCaseFileNames: true,
        baseClassName: 'EntityBase'
    });
    

    чтобы отобразить правильную выходную папку для сущностей. Эту папку необходимо создать заранее. Скопируйте базу сущностей.ts-файл из папки temphire entities (или fiddle tsgen-core.js, чтобы не использовать его. Советую не делать этого, так как он имеет расширенные свойства для entityState, которые, я думаю, могут пригодиться)

    Убедитесь, что у вас есть правильный путь к папке bin, содержащей вашу dll в скрипте в пакете.формат JSON.

    Предположим, вы установили все файлы breeze установите и сервер и клиент, показанные в temphire, включая эти зависимости в пакете.формат JSON

    "breeze-bridge-angular2": "^0.3.6",
    "breeze-client": "^1.6.0",
    

    Теперь перейдите в командную строку и запустите metadata-entities. (легче отлаживать, если npm запускает их по одному)

    Потушить это быстро, так что рады расширить на него, если что-то не ясно. Надеюсь, Уорд или Джей вступят в разговор, если я сделаю или объясню что-то особенно глупым или вводящим в заблуждение способом.

    Хотелось бы, чтобы больше поклонников Breeze поделились опытом ng2 здесь, пока Уорд и Джей не успеют документировать больше. Бриз стоит усилий.