Как можно видеть sql, который вызывает ошибку на SubmitChanges в LINQ к SQL?

в нативном Android, вы можете использовать PowerManager.isIgnoringBatteryOptimizations() логическое значение, чтобы определить, игнорирует ли приложение уже оптимизации, т. Е. Находится ли приложение в белом списке.

 @ReactMethod public void isAppIgnoringBatteryOptimization(Callback callback){
    String packageName = getReactApplicationContext().getPackageName();
    PowerManager pm = (PowerManager) getReactApplicationContext().getSystemService(Context.POWER_SERVICE);
    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
      callback.invoke(pm.isIgnoringBatteryOptimizations(packageName));
    }else{
      callback.invoke(true);
    }

, а затем в js

 isAppIgnoringBatteryOptimization: function(callback) {
    jobModule.isAppIgnoringBatteryOptimization(ignoringOptimization => {
      if (ignoringOptimization != null) {
        callback("", ignoringOptimization);
      } else {
        callback("error", null);
      }
    });
  }

https://github.com/vikeri/react-native-background-job/ - хорошая библиотека, которая видит все крайние случаи фонового выполнения

Если вы хотите попросить пользователя отключить его - попросите

Manifest.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS разрешение

из

https://developer.android. ком / ссылка / Android / Провайдер / Настройки # ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS

6
задан Glenn Slaven 13 October 2008 в 02:59
поделиться

6 ответов

Простой способ сделать это должно использовать свойство DataContext.Log:

using (MyDataContext ctx = new MyDataContext())
{
    StringWriter sw = new StringWriter();
    ctx.Log = sw;

    // execute some LINQ to SQL operations...

    string sql = sw.ToString();
    // put a breakpoint here, log it to a file, etc...
}   
11
ответ дан 8 December 2019 в 13:51
поделиться

При столкновении с этими выходит тип, я использовал профилировщика SQL. В основном включая профилировщика, ставя точку останова сохранение/обновление, очищая профилировщика и затем выполняя просто тот оператор. Оттуда у меня есть весь SQL, который выполнялся, и я вижу то, что было сгенерировано. [Я главным образом делал это через DataServices, таким образом.SaveChanges () является очень удобным местоположением для помещения точки останова]

2
ответ дан 8 December 2019 в 13:51
поделиться

Запишите тест для изоляции части или частей кода, доставляющего все неприятности. Установите DataContext.Log = Консоль. Запустите тест с testrunner (NUnit, MSTest, и т.д.). testrunners обычно отображают что-либо распечатанное к Консоли. Наряду с результатами испытаний.

2
ответ дан 8 December 2019 в 13:51
поделиться

Вы могли использовать профилировщика SQL для просмотра SQL, поскольку он поражает SQL-сервер.

Если Вы хотите видеть то, что находится на самом деле в массивах изменений, необходимо использовать:

context.GetChangedSet();

MSDN - http://msdn.microsoft.com/en-us/library/system.data.linq.datacontext.getchangeset.aspx

Можно затем просмотреть каждый SQL-оператор, прежде чем он будет отправлен на сервер.

Ваша последняя точка вызова должна использовать способность 2008 VS отладить через платформу.NET.

1
ответ дан 8 December 2019 в 13:51
поделиться

используйте SQL Profiler. Это - Ваш друг и поставлется с SQL. можно просмотреть любые SQL-операторы, которые выполняются с полным контролем над фильтрацией.

1
ответ дан 8 December 2019 в 13:51
поделиться

Я должен согласиться с Bradley Grainger, использующим свойство DataContext.Log, лучший способ видеть выполняемый sql.

0
ответ дан 8 December 2019 в 13:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: