Sobes.tech
Junior
118
questionbank

С какой базой данных вы работали и каким образом осуществляли взаимодействие с ней?

Answer from AI

sobes.tech AI

Работал с:

  • SQL Server
  • PostgreSQL
  • MySQL
  • SQLite

Взаимодействие осуществлял через:

  1. ORM (Object-Relational Mapper): Преимущественно использовал Entity Framework Core для доступа к данным. Это позволяет работать с базой данных, используя объекты C#, сокращая объем написанного SQL-кода и обеспечивая большую гибкость.

    // Пример использования Entity Framework Core
    using (var context = new MyDbContext())
    {
        var users = context.Users.Where(u => u.RegistrationDate > someDate).ToList();
        // Дальнейшая работа с коллекцией users
    }
    
  2. ADO.NET: Для более низкоуровневого взаимодействия с базой данных, когда необходим тонкий контроль над SQL-запросами или требуется работа с базами данных, для которых нет готовых ORM.

    // Пример использования ADO.NET с SQL Server
    string connectionString = "Server=myServer;Database=myDb;User Id=myUser;Password=myPassword;";
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();
        string sql = "SELECT COUNT(*) FROM Users WHERE IsActive = @isActive";
        using (SqlCommand command = new SqlCommand(sql, connection))
        {
            command.Parameters.AddWithValue("@isActive", true);
            int count = (int)command.ExecuteScalar();
            // Дальнейшая работа с count
        }
    }
    
  3. Мини-ORM/дата-мапперы: В проектах, где ORM не был оптимальным решением (например, из-за необходимости высокой производительности или специфики запросов), использовал такие библиотеки, как Dapper.

    // Пример использования Dapper
    using (IDbConnection db = new SqlConnection(connectionString))
    {
        var projects = db.Query<Project>("SELECT ProjectName, StartDate FROM Projects WHERE EndDate IS NULL").ToList();
        // Дальнейшая работа с коллекцией projects
    }
    
  4. SQL-запросы: Писал T-SQL (для SQL Server), PL/pgSQL (для PostgreSQL) для выполнения специфических запросов, создания хранимых процедур, триггеров и т.п. Чаще всего это делалось через инструменты управления базами данных (SSMS, pgAdmin) или посредством ADO.NET/ORM с использованием ExecuteSqlRaw / FromSqlRaw в Entity Framework Core.