I'm trying to figure out a way to handle dependency injection in entity framework code first.
I stumbled upon an article that uses ObjectStateManager though I don't think it's available in code first, so I'm looking for something similar where I could inject (property injection) an object into a newly created/fetched entity, or maybe there's a different way?
I'm using Autofac as the di container
You can do DI like this
public class YourContext : DbContext
{
protected ObjectContext ObjectContext
{
get
{
return ((IObjectContextAdapter)this).ObjectContext;
}
}
public YourContext(string connectionString):base(connectionString)
{
ObjectContext.ObjectMaterialized += ObjectMaterialized;
}
void ObjectMaterialized(object sender, ObjectMaterializedEventArgs e)
{
// do property injection here using e.Entity
}
}