Изменить операторы вставки и обновления EF Core - PullRequest
0 голосов
/ 14 мая 2018

Как изменить сгенерированные операторы INSERT и UPDATE в EF Core?

Я хотел бы добавить несколько идентификаторов, в идеале в качестве комментария 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);

, который сгенерирует запрос, содержащий мой идентификатор корреляции, без влияния на результат:

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, не влияя на результат?

...