Sobes.tech
Junior
159
questionbank

С какими ORM вы работали?

Answer from AI

sobes.tech AI

Я работал с несколькими ORM в экосистеме .NET:

  • Entity Framework (EF) и Entity Framework Core (EF Core): Это наиболее распространенные ORM, с которыми я имел дело. Я использовал их для различных проектов, работая с базами данных SQL Server, PostgreSQL и SQLite. Имею опыт как с подходом Code First, так и Database First. Работал с миграциями, LINQ-запросами, управлением связями между сущностями и настройкой производительности.

    using (var context = new ApplicationDbContext())
    {
        var users = context.Users
                           .Where(u => u.IsActive)
                           .ToList(); // Пример простого LINQ-запроса
    }
    
  • Dapper: Несмотря на то, что Dapper является микро-ORM, я активно использовал его в проектах, где требовалась высокая производительность при работе с данными или более гибкий контроль над SQL-запросами. Он часто применялся для чтения данных, тогда как EF использовался для операций записи и управления сущностями.

    using System.Data;
    using Dapper;
    using Microsoft.Data.SqlClient; // Пример для 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))
            {
                // Пример использования Dapper для выполнения чистого SQL-запроса
                return db.Query<User>("SELECT * FROM Users WHERE IsActive = 1").ToList();
            }
        }
    }
    
    

EF Core является моей основной ORM для новых проектов благодаря его современному дизайну, кросс-платформенности и широкому набору функций. Dapper используется в случаях, требующих максимальной производительности или прямого контроля над SQL.