实体框架5日志数据库在运行时更改

时间:2012-11-21 10:34:55

标签: c# .net entity-framework linq-to-entities

在ASP.NET 4.5 C#Entity Framework 5 Code First项目中,我想记录在运行时在数据库中进行的更改(日志记录必须在asp.net应用程序中完成,而不是在数据库中完成) 。以前,SQL语句是由代码构建的,而这些语句只是被记录下来。现在使用EF,通过linq将对象检索到实体,修改和

db.SaveChanges();
正在呼叫

。我的第一个想法是检索EF发送给数据库的实际SQL语句 - 但这似乎相当复杂。我发现了许多用于在调试期间显示SQL的“解决方案”,但没有简单的方法让代码在运行时检索它。

所以我正在寻找能够记录所做更改的任何解决方案(要么将SQL发送到DB [首选],要么对该对象所做的更改的其他形式的文本表示),这样做不需要包含许多复杂的调试库。

2 个答案:

答案 0 :(得分:1)

您应该尝试使用FrameLog

https://bitbucket.org/MartinEden/framelog/wiki/Home

没有明确说明,但它支持实体框架5

答案 1 :(得分:0)

我没有在EF 4.5上对此进行测试,因此可能需要稍微调整一下,但我发现在本文底部写的扩展方法用于调试:

http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/2a50ffd2-ed73-411d-82bc-c9c564623cb4/

给出了我的entities.SaveChanges()调用的正确输出。它不需要任何外部库,因为它是作为扩展方法编写的,所以它不会阻塞你的代码。