0

コンストラクターを介して 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();
    }
}
4

1 に答える 1