我正在使用:.net 8 中的实体框架。
我有这样的代码:
_dbContext.Database.ExecuteSqlRaw(sql,
params)
是否可以获得将要执行或已经执行的准确SQL?我需要它来将其存储在审计中,我知道我可以在 EF 中启用日志记录,但记录的 SQL 与执行的 SQL 不同,我需要它在代码的该部分中,以便我可以添加一些元数据并将精确执行的查询放入我的审计数据库。
谢谢!
如果您需要实际执行的 SQL 来进行审计,您应该考虑进行迁移,首先生成要为迁移执行的 SQL 脚本,然后通过数据库工具直接应用该脚本。 https://learn.microsoft.com/en-us/ef/core/managing-schemas/migrations/applying?tabs=dotnet-core-cli
dotnet ef migrations script --idempotent > your_executable_sql_statments.sql
--idempotent
将在各个迁移周围添加条件逻辑(无论是否应该应用)。