在ASP.NET 4.5 C#Entity Framework 5 Code First项目中,我想记录在运行时在数据库中进行的更改(日志记录必须在asp.net应用程序中完成,而不是在数据库中完成) 。以前,SQL语句是由代码构建的,而这些语句只是被记录下来。现在使用EF,通过linq将对象检索到实体,修改和
db.SaveChanges();
正在呼叫。我的第一个想法是检索EF发送给数据库的实际SQL语句 - 但这似乎相当复杂。我发现了许多用于在调试期间显示SQL的“解决方案”,但没有简单的方法让代码在运行时检索它。
所以我正在寻找能够记录所做更改的任何解决方案(要么将SQL发送到DB [首选],要么对该对象所做的更改的其他形式的文本表示),这样做不需要包含许多复杂的调试库。
答案 0 :(得分:1)
答案 1 :(得分:0)
我没有在EF 4.5上对此进行测试,因此可能需要稍微调整一下,但我发现在本文底部写的扩展方法用于调试:
给出了我的entities.SaveChanges()调用的正确输出。它不需要任何外部库,因为它是作为扩展方法编写的,所以它不会阻塞你的代码。