Guide technique : Connexion C# et Entity Framework Core à OceanBase


\## Définition du DbContext Créez une classe héritant de `DbContext` dans votre projet : ```
using Microsoft.EntityFrameworkCore;

public class OceanBaseDbContext : DbContext
{
    public DbSet<Article> Articles { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        string connectionString = "Server=adresse_serveur;Port=port_bdd;Database=nom_base;User=utilisateur;Password=mot_de_passe;";
        
        optionsBuilder.UseMySql(connectionString, ServerVersion.AutoDetect(connectionString));
    }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Article>(entity =>
        {
            entity.HasKey(e => e.Id);
            entity.Property(e => e.Titre).IsRequired().HasMaxLength(200);
            entity.Property(e => e.DateCreation).HasDefaultValueSql("CURRENT_TIMESTAMP");
        });
    }
}

public class Article
{
    public int Id { get; set; }
    public string Titre { get; set; }
    public string Contenu { get; set; }
    public DateTime DateCreation { get; set; }
}

## Opérations CRUD Voici comment manipuler les données : ``` using System; using System.Linq;

class ProgrammePrincipal { static void Main(string[] args) { using (var contexte = new OceanBaseDbContext()) { // Insertion d'un nouvel enregistrement var nouvelArticle = new Article { Titre = "Introduction à OceanBase", Contenu = "Contenu de l'article", DateCreation = DateTime.Now };

        contexte.Articles.Add(nouvelArticle);
        int resultats = contexte.SaveChanges();
        
        Console.WriteLine($"{resultats} enregistrement(s) inséré(s)");
        
        // Lecture des données
        var tousLesArticles = contexte.Articles
            .OrderByDescending(a => a.DateCreation)
            .ToList();
            
        foreach (var article in tousLesArticles)
        {
            Console.WriteLine($"ID: {article.Id}, Titre: {article.Titre}, Date: {article.DateCreation}");
        }
    }
}

}


\## Points importantes - **Chaîne de connexion** : Vérifiez l'exactitude des paramètres (serveur, port, base, identifiants). - **Compatibilité des versions** : Bien qu'OceanBase suporte le protocole MySQL, des différences spécifiques peuvent exister selon les versions. - **Gestion des erreurs** : Implémentez systématiquemennt la gestion des exceptions pour les opérations de base de données. ## Conclusion L'intégration de C# avec EF Core permet d'exploiter OceanBase efficacement via une approche orientée objet. La compatibilité MySQL facilite l'adaptation des aplpications existantes, bien qu'une attention particulière aux spécificités d'OceanBase reste recommandée selon votre contexte de déploiement.</div></div>

Publié le 14 juillet à 06h11