A ChangedBy property can be added and populated on your change entities, to store who changes are made by.

  1. Implement the IHasChangedBy<TChangedBy> interface on your change entity:
    public class UserChange : IChange<User>, IHasChangedBy<User>
    {
    ...
    
  2. Create a ChangedByProvider by inheriting the ChangedByProvider<TChangedBy> class and overriding the required method(s):
    public class MyChangedByProvider : ChangedByProvider<User>
    {
     public override Task<User> GetChangedByAsync()
     {
         return Task.FromResult(new User { Id = 1});
     }
    }
    
  3. Add the UseChangedBy<TChangedByProvider, TChangedBy>() option to your DbContextOptions, specifying your ChangedByProvider and ChangedBy type:
    services.AddDbContext<MyDbContext>(options =>
    {
     options
         .UseSqlServerChangeTriggers(options =>
         {
             options.UseChangedBy<MyChangedByProvider, User>()
         });
    }
    
  4. Create a migration if required:
    dotnet ef migrations add ChangedBy
    

Table of contents