У меня была такая же проблема. Вам необходимо понизить Cordova до версии 8.1.2
npm uninstall -g cordova
npm cache clean --force
npm i -g cordova@8.1.2
Во-первых, я думаю, что основанный на экземпляре подход корректен. Используя статические классы сделает это намного более трудным к модульному тесту Ваш DAL и дразнить Ваш DAL когда поблочное тестирование другие классы. Во-вторых, я думаю, что необходимо пересмотреть создание собственного DAL. Вы инвестируете много времени в создании, поддержании и тестировании Вашего DAL, когда Вы могли, при помощи существующего (хорошо протестированного) ORM - как LINQtoSQL, nHibernate, nTier, или даже Платформа Объекта - проводит больше времени на коде, который непосредственно приносит пользу Вашим бизнес-потребностям. Я сделал обоих, изготовленный вручную DAL и ORM, в моем случае LINQtoSQL, и я нашел, что провожу намного меньше времени, тестируя (и фиксируя) мой DAL, идущий путем ORM.
Основа экземпляра каждый более гибок.
Можно более легко измениться, базовая технология (просто обеспечивают другую реализацию).
Можно также проксировать уровень доступа к данным. В моем случае я недавно сделал это для проверки, чтобы видеть, было ли что-то в локальной базе данных, и если не получают копию его от удаленной базы данных и затем хранят его локально. Это было сделано полностью прозрачно к остальной части приложения.