Cómo hacer que el contexto de datos de Entity Framework sea solo de lectura

Necesito exponer un contexto de datos de Entity Framework a complementos de terceros. El objective es permitir que estos complementos capturen solo datos y no les permitan emitir inserciones, actualizaciones o eliminaciones o cualquier otro comando de modificación de la base de datos. Por lo tanto, ¿cómo puedo hacer un contexto de datos o entidad de solo lectura?

Además de conectarse con un usuario de solo lectura, hay algunas otras cosas que puede hacer con su DbContext.

 public class MyReadOnlyContext : DbContext { // Use ReadOnlyConnectionString from App/Web.config public MyContext() : base("Name=ReadOnlyConnectionString") { } // Don't expose Add(), Remove(), etc. public DbQuery Customers { get { // Don't track changes to query results return Set().AsNoTracking(); } } public override int SaveChanges() { // Throw if they try to call this throw new InvalidOperationException("This context is read-only."); } protected override void OnModelCreating(DbModelBuilder modelBuilder) { // Need this since there is no DbSet property modelBuilder.Entity(); } }