コンストラクターを介して dbcontext をサービスレイヤーに注入するために、次のようなものがうまくいくかもしれないと考えています..誰かがより良い方法を持っていますか? 動作しているように見えますが、dbcontext から継承する実際のクラスにオブジェクトをキャストしない限り、_context.EntityName などは intellisense に表示されません。
public interface IContextFactory:IDisposable
{
DbContext Create();
}
public class ContextFactory<TContext> : IContextFactory where TContext : DbContext, new()
{
private DbContext _context;
public DbContext Create()
{
_context = new TContext();
_context.Configuration.LazyLoadingEnabled = true;
return _context;
}
public void Dispose()
{
_context.Dispose();
}
}