Sobes.tech
Junior

Με ποια βάση δεδομένων εργάστηκες και πώς αλληλεπιδράσατε μαζί της;

sobes.tech AI

Απάντηση από 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. Mini-ORM / data mappers: Σε έργα όπου το 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) για την εκτέλεση συγκεκριμένων ερωτημάτων, δημιουργία αποθηκευμένων διαδικασιών, triggers κ.λπ. Αυτό γινόταν συνήθως μέσω εργαλείων διαχείρισης βάσεων δεδομένων (SSMS, pgAdmin) ή μέσω ADO.NET/ORM με χρήση ExecuteSqlRaw / FromSqlRaw στο Entity Framework Core.