using System.Threading.Tasks;
public static void Main()
BaseApplicationDbContext<Entity> context = null;
IEntityHandler baseContext = context;
public class BaseEntity { }
public class Entity : BaseEntity { }
public interface IEntityHandler
Task HandleSomething(BaseEntity baseEntity);
public class BaseApplicationDbContext<TEntity> : IEntityHandler
where TEntity : BaseEntity
public virtual Lazy<TEntity> Entity { get; set; }
public virtual Task HandleSomething(BaseEntity baseEntity) => Task.CompletedTask;