Sobes.tech
Junior

S jakými ORM jste pracoval?

sobes.tech AI

Odpověď od AI

Pracoval jsem s několika ORM v ekosystému .NET:

  • Entity Framework (EF) a Entity Framework Core (EF Core): Jedná se o nejrozšířenější ORM, se kterými jsem pracoval. Používal jsem je v různých projektech, pracujíc s databázemi SQL Server, PostgreSQL a SQLite. Mám zkušenosti jak s přístupem Code First, tak Database First. Pracoval jsem s migracemi, LINQ dotazy, správou vztahů mezi entitami a optimalizací výkonu.

    using (var context = new ApplicationDbContext())
    {
        var users = context.Users
                           .Where(u => u.IsActive)
                           .ToList(); // Příklad jednoduchého LINQ dotazu
    }
    
  • Dapper: Ačkoliv je Dapper mikro-ORM, aktivně jsem ho používal v projektech, kde byla požadována vysoká výkonnost při práci s daty nebo flexibilnější kontrola nad SQL dotazy. Často se používal pro čtení dat, zatímco EF byl používán pro zápisové operace a správu entit.

    using System.Data;
    using Dapper;
    using Microsoft.Data.SqlClient; // Příklad pro 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))
            {
                // Příklad použití Dapper pro provedení čistého SQL dotazu
                return db.Query<User>("SELECT * FROM Users WHERE IsActive = 1").ToList();
            }
        }
    }
    

EF Core je hlavní ORM pro nové projekty díky modernímu designu, multiplatformní podpoře a široké sadě funkcí. Dapper se používá v případech, kdy je potřeba maximální výkon nebo přímá kontrola nad SQL.