如何使entity framework数据上下文只读

我需要向第三方插件公开一个entity framework数据上下文。 目的是允许这些插件仅提取数据,而不是让他们发出插入,更新或删除或任何其他数据库修改命令。 因此,我怎样才能使数据上下文或实体只读。

除了与只读用户连接之外,还有一些其他的事情可以对DbContext进行操作。

public class MyReadOnlyContext : DbContext { // Use ReadOnlyConnectionString from App/Web.config public MyContext() : base("Name=ReadOnlyConnectionString") { } // Don't expose Add(), Remove(), etc. public DbQuery<Customer> Customers { get { // Don't track changes to query results return Set<Customer>().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<Customer> property modelBuilder.Entity<Customer>(); } }