2015-07-17 12 views
0

Я новичок в BreezeJS, но очень заинтересован. Я хотел бы включить его в проект Angular/Node, который я сейчас выполняю.breezeJS зачем создавать новый entityManagerProvider для каждой единицы работы?

Я читал документацию и смотрел образцы. Один образец, который я рассматривал, - это образец TempHire, который можно найти здесь: https://github.com/Breeze/breeze.js.samples/blob/master/node/tempHire

Я не могу понять, почему они создают новый entityManagerProvider для каждого UnitOfWork. Похоже, много усилий потрачено впустую. Я уверен, что есть причина для этого, и я просто не получаю его из-за моего незнания бриза или структуры работы.

Любая помощь с этим очень ценится.

ответ

1

Ключ в документации: «UOWs могут использоваться совместно с ViewModels, если разные части пользовательского интерфейса работают с одними и теми же данными, но каждое UOW остается уникальной песочницей».

В angularjs, фабрики-сервисы являются одиночными, поэтому, когда вы создаете сервис UOW, у вас есть созданный для него сущ.

Внутри UOW вы помещаете все хранилища данных, с которыми хотите работать, и используйте их для своего бизнес-кода.

Каждый раз, когда вы хотите работать с этими данными, вы просто вводите созданную вами услугу «unitofwork», и никакой дополнительный entityManager не будет создан. Сервисный завод «UnitOfWork» имеет метод «get».

Но в случае, если вы хотите использовать новый чистый экземпляр службы UnitOfWork с пустым кешем entityManager, вы просто вызываете unitOfWork.create(), который будет создавать новый enityManager.

Пример такого бизнес-сценария, как это описано здесь: http://breeze.github.io/doc-cool-breezes/multiple-entitymanagers.html

 Смежные вопросы

  • Нет связанных вопросов^_^