Бриз создать сущность из существующей

Уже несколько дней стучу в голове.

Представьте, что у вас есть приложение для управления продажами автомобилей. Вы продаете разные модели. Ваша модель автомобиля имеет 50 свойств. Просто для примера, давайтеговорят, что вы хотите продать Bugatti Veyron. Теперь вы только что получили 5 из этих автомобилей. Итак, я захожу в свое приложение, создаю первый Bugatti Veyron с определенным идентификатором. Затем я хочу добавить 2-й, но есть проблема - мне придется снова записать все эти свойства! Я'Я хотел бы иметь кнопку Копировать, и япросто поменяю серийный номер, ветер поменяет ID и вуаля, там две машины!

Ради всего святого, сначала я создал это решение:

newCar(datacontext.createCar());
newCar().property1(oldCar().property1());
newCar().property2(oldCar().property2());
...

это было ужасно, и после того, как я доказал, что могу сделать это, конечно, запрос на приложение должен был сделать все копируемым - ни за что я не сделал бы это! Где-то должна быть копия. Перекопав много вещей, даже пытаясь изменить что-то в бризе, я не могсделать что-то вроде:

manager.createEntity('Car', oldCar);

Теперь последнее решение более жизнеспособно, чем первое, но все же требует больше кода, чем хотелось бы, и не так интуитивно, как могло бы быть:

        var newObject = {};
        manager.metadataStore._structuralTypeMap[oldCar.entityType.name].dataProperties.forEach(function (singleProperty) {
                if (!singleProperty.isPartOfKey)
                newObject[singleProperty.name] = oldCar[singleProperty.name];
            });
        var newCar = manager.createEntity('Equipment', newObject);

Есть ли другие?очиститель" способ сделать новую сущность с точно такими же свойствами, но, конечно, с другим идентификатором?

Я должен упомянуть, что в сущности Car есть некоторые ICollections, но это хакерское решение игнорирует их, которые можно улучшить, но в настоящее время я сам справляюсь с этим с помощью нескольких циклов .forEach.

Ответы на вопрос(5)

Ваш ответ на вопрос