SQLite データベースで Microsoft Entity Framework を使用しています。デバッグに関しては、本当に苦労しています。
現在、「saveChanges()」メソッドを呼び出した後、出力ウィンドウでのみこれを取得します
SQLite error (1): near "SELECT": syntax error
データの更新中に EF が一部のクエリを台無しにしたようです。クエリを取得する方法を探していますが、それは間違っているようです。DB に対して実行されるクエリを聞くことはできませんか?
私は他のことを試しましたが、これもより有用な情報を提供しませんでした:
- スタック トレース ウィンドウでは、[外部コード] とだけ表示されます。
- Microsoft Symbol Server からすべてのシンボルをダウンロードしましたが、それ以上の情報はありません
- "SaveChanges()" の直前に BreakPoint を配置し、F11 を使用してすべてを実行しましたが、内部コード (シンボル ファイルなど) は表示されません。
- SQLite のソース ファイルをダウンロードし、それらのプロジェクトを自分のプロジェクトに含めて、ソース ファイルをコンパイルしました。しかし、それでも SQLite ソースをステップスルーしません。ObjectExplorer で見ることができますが、BreakPoint を設定すると完全に赤くなりません (Breakpoint に到達しません。このドキュメントへのシンボルは読み込まれません)。
- System.Data.UpdateException を調べると、SQLite Package のクラスを参照するスタック トレースが見つかりますが、そこにブレーク ポイントを設定できないため、そこのパラメーター値を読み取ることができません。これはスタックトレースです:
System.Data.SQLite.SQLite3.Prepare(SQLiteConnection cnn, String strSql, SQLiteStatement previous, UInt32 timeoutMS, String& strRemain) System.Data.SQLite.SQLiteCommand.BuildNextCommand() System.Data.SQLite.SQLiteCommand.GetStatement(Int32) index) System.Data.SQLite.SQLiteDataReader.NextResult() System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behavior) System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior) System.Data .SQLite.SQLiteCommand.ExecuteDbDataReader(CommandBehavior 動作) System.Data.Common.DbCommand.ExecuteReader(CommandBehavior 動作) System.Data.Mapping.Update.Internal.DynamicUpdateCommand.Execute(UpdateTranslator トランスレーター、EntityConnection 接続、Dictionary
2 identifierValues, List
1 generatedValues) bei System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager, IEntityAdapter adapter)
- 関連する SO-Question の 1 つでは、答えは StateEntries を見ることでしたが、ここでわかるように。彼らも私を助けません。