我将 Microsoft Entity Framework 与 SQLite 数据库一起使用。在调试方面,我真的很难。
现在我只在我调用“saveChanges()”-方法后在我的输出窗口中得到这个
SQLite error (1): near "SELECT": syntax error
显然 EF 在更新我的数据时搞砸了一些查询。我正在寻找一种获取查询的方法,这似乎是错误的。我不能听听对数据库发起了哪些查询吗?
我尝试了其他的东西,也没有提供更多有用的信息:
- 在堆栈跟踪窗口中,它只显示 [外部代码]
- 我从 Microsoft 符号服务器下载了所有符号,但那里没有更多信息
- 我在“SaveChanges()”之前放置了一个断点,并使用 F11 逐步完成所有操作,但没有显示内部代码(如符号文件中的代码)
- 我下载了 SQLite 的源文件,并将这些项目包含在我的项目中并编译了源文件。但它仍然没有通过 SQLite 源。我可以在 ObjectExplorer 中看到它们,但是当我在那里设置 BreakPoint 时,它们不是完全红色的(没有达到断点。没有加载此文档的符号)
- 在检查 System.Data.UpdateException 时,我发现堆栈跟踪引用了 SQLite 包的一个类,但由于我无法在那里设置断点,因此我无法读取那里的参数值。这是堆栈:
bei System.Data.SQLite.SQLite3.Prepare(SQLiteConnection cnn, String strSql, SQLiteStatement previous, UInt32 timeoutMS, String& strRemain) bei System.Data.SQLite.SQLiteCommand.BuildNextCommand() bei System.Data.SQLite.SQLiteCommand.GetStatement(Int32 index) bei System.Data.SQLite.SQLiteDataReader.NextResult() bei System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior 行为) bei System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior 行为) bei System.Data .SQLite.SQLiteCommand.ExecuteDbDataReader(CommandBehavior 行为) 北 System.Data.Common.DbCommand.ExecuteReader(CommandBehavior 行为) 北 System.Data.Mapping.Update.Internal.DynamicUpdateCommand.Execute(UpdateTranslator 翻译器,EntityConnection 连接,字典
2 identifierValues, List
1 generateValues) bei System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager, IEntityAdapter 适配器)
- 在一个相关的 SO-Question 中,答案是查看 StateEntries,但正如您在此处看到的那样。他们也不帮我。