.net - learn - queries in entity framework
Cómo hacer que el contexto de datos de Entity Framework sea solo de lectura (1)
Necesito exponer un contexto de datos de Entity Framework a complementos de terceros. El objetivo 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<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>();
}
}