4

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

db.SaveChanges();

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

因此,我正在寻找任何可以记录所做更改的解决方案(发送到数据库的 SQL [首选],或对对象所做更改的某种其他形式的文本表示),并且不需要包含许多复杂的调试库。

4

2 回答 2

1

你应该试试 FrameLog

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

没有明确说明,但它支持 Entity Framework 5

于 2013-11-05T00:11:53.550 回答
0

我没有在 EF 4.5 上对此进行测试,因此可能需要对其进行一些调整,但出于调试目的,我发现这篇文章底部编写的扩展方法:

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

给我实体的正确输出。SaveChanges() 调用。它不需要任何外部库,并且由于它是作为扩展方法编写的,因此不会阻塞您的代码。

于 2012-11-21T10:58:14.380 回答