NickStrupat / EntityFramework.Triggers

Adds events for entity inserting, inserted, updating, updated, deleting, and deleted
MIT License
373 stars 46 forks source link

GlobalUpdated with dependency injection is not working #55

Closed ketanvijayvargiya closed 4 years ago

ketanvijayvargiya commented 4 years ago

Hi,

When i tried to use DI with UseTriggers is not working

//This works for me Triggers.Updated += e => Debug.WriteLine("I work");

when i tried to call some service it is failing for me

Triggers.GlobalUpdated.Add( entry => entry.Service.update() ); ;

Is i'm doing something wrong

In service i just injected services.AddTriggers();

app.UseTriggers(builder => { //this works for me Triggers.Updated += e => Debug.WriteLine("I work"); Triggers.GlobalUpdated.Add(_ => Console.WriteLine("GlobalInserting"));

// This is not getting executed builder.Triggers().Inserted.Add(entry => Debug.WriteLine(entry.Entity.ToString())); builder.Triggers<MyEntity, Context>().Inserted.Add(entry => Debug.WriteLine(entry.Entity.DatabaseName)); builder.Triggers<MyEntity, Context>().Inserted.Add(entry => Debug.WriteLine(entry.Service)); builder.Triggers<MyEntity, Context>().Inserted.Add<(string Text, Object Object)>(entry => Debug.WriteLine($"{entry.Service.Text} {entry.Service.Object}")); });

ketanvijayvargiya commented 4 years ago

I got the solution just saw we can pass Iserviceprovider in context, thanks I found this as quite a useful package

NickStrupat commented 4 years ago

Hi there,

Glad you figured it out!