Sobes.tech
Junior

Avec quels ORM avez-vous travaillé?

sobes.tech IA

Réponse de l'IA

J'ai travaillé avec plusieurs ORM dans l'écosystème .NET:

  • Entity Framework (EF) et Entity Framework Core (EF Core) : Ce sont les ORM les plus courants avec lesquels j'ai travaillé. Je les ai utilisés dans divers projets, en travaillant avec des bases de données SQL Server, PostgreSQL et SQLite. J'ai de l'expérience avec l'approche Code First ainsi que Database First. J'ai travaillé avec des migrations, des requêtes LINQ, la gestion des relations entre entités et l'optimisation des performances.

    using (var context = new ApplicationDbContext())
    {
        var users = context.Users
                           .Where(u => u.IsActive)
                           .ToList(); // Exemple de requête LINQ simple
    }
    
  • Dapper : Bien que Dapper soit un micro-ORM, je l'ai utilisé activement dans des projets nécessitant une haute performance lors de la manipulation des données ou un contrôle plus flexible sur les requêtes SQL. Il était souvent utilisé pour la lecture des données, tandis que EF était utilisé pour les opérations d'écriture et la gestion des entités.

    using System.Data;
    using Dapper;
    using Microsoft.Data.SqlClient; // Exemple pour SQL Server
    
    public class UserRepository
    {
        private readonly string _connectionString;
    
        public UserRepository(string connectionString)
        {
            _connectionString = connectionString;
        }
    
        public IEnumerable<User> GetActiveUsers()
        {
            using (IDbConnection db = new SqlConnection(_connectionString))
            {
                // Exemple d'utilisation de Dapper pour exécuter une requête SQL brute
                return db.Query<User>("SELECT * FROM Users WHERE IsActive = 1").ToList();
            }
        }
    }
    

EF Core est mon ORM principal pour les nouveaux projets grâce à sa conception moderne, sa portabilité et sa large gamme de fonctionnalités. Dapper est utilisé dans les cas nécessitant une performance maximale ou un contrôle direct sur SQL.