Вы абсолютно не можете использовать ничего, кроме 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, которую вы можете связать с вашим проектом, и позволяет работать более объектно-ориентированным способом (для некоторых, чрезвычайно ограниченные значения «объектно-ориентированные»!)
Не совсем вопрос программирования. Я предлагаю обратиться к SAP напрямую через OSS или запросить SCN. Это говорит о том, что SAP говорит нам, что ваше предположение верно, мы можем читать из базовой БД, а не что-то еще (это для ERP, а не B1, поэтому вам стоит дважды проверить) –