2016-12-30 37 views
0

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

import { Customer } from './entities'; 

ответ

0

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

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

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

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

+0

Спасибо за отзыв Mr. Bell. Но я мог бы воспользоваться этой возможностью, поскольку вы что-то связали. – sskasim

+0

Спасибо за ответ, мистер Белл. Но я мог бы воспользоваться этой возможностью, чтобы спросить вас о чем-то другом, но связанном с этим. Я разработал пару больших приложений LoB с использованием Breeze и Angular1x, не требуя каких-либо шаблонов UoW на стороне клиента или сервера. Бриз отслеживает все изменения с момента последнего сохранения, и я могу отклонить или зафиксировать изменения по своему усмотрению. Но для того, чтобы заставить Бриз работать с Angular2 и машинописными текстами, кажется, очень сложно. Я загрузил код TempHire, но смотрел по-гречески и по-латыни по сравнению с тем, что я сделал в Angular1x. На самом деле нужно что-то хорошо документированное для ng2 и бриз. – sskasim

+0

@sskasim Шаблон UoW - это всего лишь один подход к управлению наборами данных/задачами/рабочими процессами на клиенте. Как минимум, вы должны абстрагировать свой уровень персистентности за какой-то услугой, которая предлагает четко определенный фасад для компонентов пользовательского интерфейса. Образец UoW зарекомендовал себя со временем как очень прочный шаблон проектирования для приложений среднего и крупного масштаба. Это больше, чем просто фасад над EntityManager. – superswiss

0

Я недавно боролся с тем же вопросом. Я не использовал единицу работы, а, скорее, единственный репозиторий - dbContext, как показано в примере Spap Plustalsight от John Papa для 1.x. Типовой проект ссылки в проекте данных компилируется в data.dll

Попробуйте это:

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

скопировать package.json скрипты: строки для метаданных: лиц: и метаданные-объекты:

вы будете нуждаться в них, и будет регулировать как путь к вашей модели данных и имя самой 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); 
    } 

В папке инструментов, вам нужно настроить в tsgen.js файл

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

, чтобы отобразить правильную папку вывода для объектов. Вы должны создать эту папку заранее. Скопируйте файл entity-base.ts из папки объектов temphire (или попробуйте tsgen-core.js, чтобы не использовать его. Предложите не делать этого, поскольку он имеет расширенные свойства для entityState, которые, по моему мнению, могут пригодиться)

Сделать убедитесь, что у вас есть правильный путь к папке bin, содержащей вашу DLL в скрипте в package.json.

Предположим, вы установили все файлы ветер установить клиент и сервер показано на temphire, в том числе этих зависимостей в package.json

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

теперь переходим к командной строки и выполните метаданные объектов. (проще отлаживать, если вы npm запускаете их по одному за раз)

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

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