137 votes

Comment faire Entity Framework Contexte de Données En lecture seule

J'ai besoin d'exposer une Entité de Données de Cadre de Cadre à la 3e partie des plugins. Le but est de permettre à ces plugins, pour récupérer uniquement les données et de ne pas les laisser émettre des insertions, des mises à jour ou suppressions ou toute autre base de données modification des commandes. Donc comment puis-je effectuer un contexte de données ou entité en lecture seule.

211voto

bricelam Points 3757

En plus de la connexion avec un utilisateur en lecture seule, il ya quelques autres choses que vous pouvez faire pour votre 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>();
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X