6
Ho il seguente EntityFramework contesto:Iniettare DbContext con Autofac
public class Context : DbContext, IDbContext {
}
Dove IDbContext è la seguente:
public interface IDbContext {
DbEntityEntry Entry(Object entity);
IEnumerable<DbEntityValidationResult> GetValidationErrors();
Int32 SaveChanges();
Task<Int32> SaveChangesAsync();
Task<Int32> SaveChangesAsync(CancellationToken cancellationToken);
DbSet Set(Type entityType);
DbSet<TEntity> Set<TEntity>() where TEntity : class;
} // IDbContext
Qual è il modo corretto per configurare l'iniezione DbContext con Autofac?
Con StructureMap ho avuto i seguenti:
For<IDbContext>().Use(x => new Context());
Gorgon: C'è una ragione per l'utilizzo di AsImplementedInterfaces() invece di specificare l'interfaccia, ad es., Come? E perché non usare InstancePerRequest()? Grazie. –
La specifica delle interfacce è esplicita. È una questione di gusti, convenzioni, disciplina, ecc. (Preferisco le cose automagiche con le convenzioni). InstancePerRequest() va bene se sei strettamente in un contesto web, ma non funzionerà diversamente. InstancePerLifetimeScope() presume che tu sia a conoscenza dell'ambito e lo controlli in qualche modo te stesso (ad esempio, creane uno per thread in un processo batch). –