Breeze从现有实体创建实体

 jx轩宝妈咪 发布于 2023-02-11 08:17

我已经好几天了.

想象一下,你有一个汽车销售管理应用程序.你卖不同的型号.您的汽车模型有50个属性.仅举例来说,假设你想卖掉布加迪威龙.现在,你刚收到5辆这样的车.所以,我登录我的应用程序,创建第一个具有特定ID的Bugatti Veyron.然后我想添加第二个,但有一个问题 - 我将不得不再次写下所有这些属性!我想要一个复制按钮,我只是更改序列号,微风会改变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);

有没有其他"更清洁"的方法来制作具有完全相同属性的新实体,但当然,不同的ID?

我应该提到Car实体中有一些ICollections,但是这个hack-ish解决方案忽略了可以改进的那些,但是目前我自己处理了一些.forEach循环.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有