如何在EF Core中修改生成的INSERT和UPDATE语句?
我想添加一些ID,理想情况下是SQL注释:
UPDATE Task SET Name = 'Test' WHERE Id = 1
-- correlationId: abcde12345
在查询中,我可以使用Linq做类似的事情:
var queryInternal = dbContext.Set<Task>().Where(t => t.Id == 1);
queryInternal.Where(e => correlationId == correlationId);
将生成包含我的相关ID的查询,而不会影响结果:
SELECT * FROM Task WHERE Id = 1 AND 'abcde12345' = 'abcde12345'
我尝试了什么:
在调用SaveChanges()之前,我可以访问已更改的实体。所以我尝试在那里设置值。
var changes = dbContext.ChangeTracker.Entries;
foreach (var item in changes)
{
item.Property("correlationId").CurrentValue = correlationId;
}
但这需要模型上的实际属性和数据库中的列。
是否有其他方法可以在不影响结果的情况下向INSERT和UPDATE语句添加一些任意值?