Necesito exponer un Entity Framework Data Context a los 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?Cómo hacer que Entity Framework Data Context Readonly
Respuesta
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>();
}
}
era obvio que eres un "hombre interno" :) - esto es mucho más interesante que una conexión de 'solo lectura' – NSGaga
Ten en cuenta que usar 'AsNoTracking()' hará que sea imposible usar la carga lenta. –
@ TomPažourek No sé si eso es cierto ... Creo que EF todavía crea proxies de carga lenta, pero la resolución de la identidad puede ser un poco rara. – bricelam
- 1. Mocking Entity Framework Context
- 2. Entity Framework Context - ¡Estoy atascado!
- 3. Código Entity Framework First ReadOnly Entity
- 4. Preguntas sobre Entity Framework Context Lifetime
- 5. Entity Framework vs Direct Data Access
- 6. WCF Data Services o Entity Framework
- 7. Entity Framework 4.1 - Refresh no es miembro de Context
- 8. Cómo hacer que Entity Framework cache algunos objetos
- 9. ¿Cómo hacer que Entity Framework y MVVM jueguen bien juntos?
- 10. ¿Cómo hacer WPF DataGridCell ReadOnly?
- 11. ADO.NET Entity Framework con OLE DB Access Data Source
- 12. Cómo gestionar GetDate() con Entity Framework
- 13. Hacer que Entity Framework no distinga entre mayúsculas y minúsculas
- 14. Entity Framework 4.1 vs Enterprise Data Application Block Rendimiento máximo
- 15. Cómo crear Entity Framework ObjectContext?
- 16. ¿Cómo podemos hacer el filtrado de objetos en Entity Framework?
- 17. Entity Framework: LINQ to Entities only supports casting Entity Data Model tipos primitivos
- 18. ¿Cómo hacer miembros readonly en powershell?
- 19. Entity Framework Thread Safety
- 20. Manejar Entity Framework OptimisticConcurrencyException
- 21. Entity Framework v4.1 COMO
- 22. ¿Cómo hacer IEnumerable <T> readonly?
- 23. repositorio que imita con Entity Framework
- 24. Cualquiera que use Entity Framework * ¿Bien *?
- 25. Cómo revertir una transacción en Entity Framework
- 26. Hacer que Readonly todos los campos en un formulario
- 27. proyecciones de Entity Framework
- 28. Entity Framework (EF) OutOfMemoryException
- 29. ¿Cómo puedo conectar a Oracle en ADO.NET Entity Data Model
- 30. Cómo corregir la orientación del anillo de polígono usando C# Entity Framework 5 DbGeography Spatial Data
Déles un contexto con un usuario que no tenga acceso de escritura a la base de datos. – vcsjones
Gracias. Estoy usando una base de datos SQLite. Acaba de descubrir que se puede abrir en modo de solo lectura a través de una opción de cadena de conexión. – Harindaka
No les des un 'DbContext', dales un' IQueryable' o varios. –