Sobes.tech
Junior

Бо кадом ORM кор кардаед?

sobes.tech AI

Ҷавоб аз 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 асосии ман барои лоиҳаҳои нав аст, бо сабаби тарҳи муосир, дастгирии платформаи бисёр ва маҷмӯи васеи функсияҳо. Dapper дар ҳолатҳое истифода мешавад, ки талаботи баландтарин дар иҷроиш ё назорати мустақим бар SQL вуҷуд дорад.