在不损失保修的情况下将EntityFramework与SAP Business One结合使用?

时间:2013-08-22 08:51:56

标签: performance entity-framework sap sapb1

我想知道是否有人在SAP Business One中使用EntityFramework? 如果是,您如何处理保修。 SAP仅允许通过其DI服务器API插入/更新/删除,否则您将失去保修。因此,如果我只允许选择我只能使用实体框架来读取数据,这是正确的吗?

无论如何,您是否会建议将EntityFramework与SAP Business One一起使用,或者是否存在大量数据的性能问题?

问候。

1 个答案:

答案 0 :(得分:4)

您绝对不能使用DI以外的任何内容来插入,更新或删除SAP Business One数据库中的数据!作为过去9年与SAP合作的人,我诚实的建议是甚至不尝试。一旦你打破了数据库,SAP就不会支持它,你最终会向某人支付很多钱来修复它......

暂且不考虑保修问题,即使是SBO中最简单的操作(假设添加单个发票1行)也会导致对象模型更新包含至少10或11个“主要”表及其自己的相关集合“次要的“表格......启动SQL事件探查器并在SBO客户端创建发票,并观察生成多少SQL,不仅仅是插入而是选择......还有SAP正在做的业务逻辑所有这些数据完全隐藏在你的来电者身上。你很少有机会自己正确地建模这个......


关于使用EF从数据库中读取数据,我再也不会打扰 - 您在SAP客户端中看到的大部分数据都没有被正确定义的关系取出,这意味着您的模型永远不会是正确的。使用普通的旧SQL更好地生病,无论如何,您都可以将这些数据映射到您自己的内存模型中。

在这方面,SQL Profiler是你的朋友;没有任何东西可以100%准确地告诉你SBO如何做到这一点,但它至少会让你通过在客户端执行操作并观察结果查询来访问它所使用的相同数据。

也只是为了纠正一点 - 有两种方法来做到这一点。一个是DI服务器,它是一个基于XML的服务,另一个是通过DIAPI,它是一个基于COM的库,你可以链接到你的项目,让你以更面向对象的方式工作(对于某些人来说,非常有限的“面向对象”的价值!)