Performance 将EntityFramework与SAP Business One配合使用而不失去保修?

Performance 将EntityFramework与SAP Business One配合使用而不失去保修?,performance,entity-framework,sapb1,Performance,Entity Framework,Sapb1,我想知道是否有人正在使用EntityFramework和SAP Business One? 如果是,您如何处理保修。SAP仅允许通过其DI服务器API插入/更新/删除,否则您将失去保修。所以,如果我只允许选择,我只能使用实体框架来读取数据,对吗 无论如何,您会建议将EntityFramework与SAP Business One结合使用,还是会因为数据量大而出现性能问题 您好。您绝对不能使用DI以外的任何东西来插入、更新或删除SAP Business One数据库中的数据!作为过去9年与SAP合

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

无论如何,您会建议将EntityFramework与SAP Business One结合使用,还是会因为数据量大而出现性能问题


您好。

您绝对不能使用DI以外的任何东西来插入、更新或删除SAP Business One数据库中的数据!作为过去9年与SAP合作的合作伙伴,我真诚的建议是:不要尝试。一旦你破坏了数据库,SAP将不支持它,你最终会花很多钱给别人修复它

撇开保修问题不谈,即使是SBO中最简单的操作(比方说,添加一行发票)也会导致对象模型更新,其中至少包含10或11个“主要”表及其各自相关的“次要”表集……启动SQL Profiler并在SBO客户机中创建发票,然后观察生成了多少SQL,不仅是插入,还有选择……再加上SAP处理所有这些数据的业务逻辑对您和调用者完全隐藏。你几乎没有机会,也就是说,你自己没有机会正确建模


关于使用EF从数据库中读取数据,我也不想麻烦-您在SAP客户端中看到的许多数据都没有通过正确定义的关系取出,这意味着您的模型永远不会完全正确。最好是使用普通的旧SQL,通过各种方式,您可以将这些数据映射到自己的内存模型中

在这方面,SQL Profiler是您的朋友;没有什么能让您100%准确地了解SBO是如何做到这一点的,但它至少能让您通过在客户端执行操作并观察结果查询来访问它使用的相同数据

还有一点要纠正——有两种方法可以做到这一点。一个是DI服务器,它是一个基于XML的服务,另一个是通过DIPI,它是一个基于COM的库,您可以链接到您的项目,并让您以更面向对象的方式工作(当然,“面向对象”的值非常有限!)

2019年10月更新:
关于我之前关于不使用EF从SAP表中读取数据的建议,我发现自己正在做越来越多的事情,尤其是在创建针对各种表的视图时,这样可以更轻松地读取应用程序所需的数据。这样做的一大优点是,您可以从SBO中加入多个表,并清理列名等。作为视图,这些表是只读的,因此使用起来是安全的。

您绝对不能使用DI以外的任何东西来插入、更新或删除SAP Business One数据库中的数据!作为过去9年与SAP合作的合作伙伴,我真诚的建议是:不要尝试。一旦你破坏了数据库,SAP将不支持它,你最终会花很多钱给别人修复它

撇开保修问题不谈,即使是SBO中最简单的操作(比方说,添加一行发票)也会导致对象模型更新,其中至少包含10或11个“主要”表及其各自相关的“次要”表集……启动SQL Profiler并在SBO客户机中创建发票,然后观察生成了多少SQL,不仅是插入,还有选择……再加上SAP处理所有这些数据的业务逻辑对您和调用者完全隐藏。你几乎没有机会,也就是说,你自己没有机会正确建模


关于使用EF从数据库中读取数据,我也不想麻烦-您在SAP客户端中看到的许多数据都没有通过正确定义的关系取出,这意味着您的模型永远不会完全正确。最好是使用普通的旧SQL,通过各种方式,您可以将这些数据映射到自己的内存模型中

在这方面,SQL Profiler是您的朋友;没有什么能让您100%准确地了解SBO是如何做到这一点的,但它至少能让您通过在客户端执行操作并观察结果查询来访问它使用的相同数据

还有一点要纠正——有两种方法可以做到这一点。一个是DI服务器,它是一个基于XML的服务,另一个是通过DIPI,它是一个基于COM的库,您可以链接到您的项目,并让您以更面向对象的方式工作(当然,“面向对象”的值非常有限!)

2019年10月更新:
关于我之前关于不使用EF从SAP表中读取数据的建议,我发现自己正在做越来越多的事情,尤其是在创建针对各种表的视图时,这样可以更轻松地读取应用程序所需的数据。这样做的一大优点是,您可以从SBO中加入多个表,并清理列名等。作为视图,这些表是只读的,因此使用起来是安全的。

这不是真正的编程问题。我建议直接通过OSS或SCN询问SAP。尽管如此,SAP告诉我们您的假设是正确的,我们可以从底层数据库中读取数据,而不是其他任何内容(这是针对ERP的,而不是B1,因此您应该仔细检查),这不是一个真正的编程问题。我建议直接通过OSS或SCN询问SAP。话虽如此,SAP告诉我们您的假设是正确的,我们可以从底层数据库中读取,而不是其他任何内容(这是针对ERP的,而不是B1,因此您应该仔细检查)非常感谢您给出的详细答案。它确实帮助了我,澄清了一些问题。来自德国的问候非常感谢您的详细回答。它确实帮助了我,澄清了一些问题。来自德国的问候