EF এবং ASP.NET Core API Integration

Microsoft Technologies - এন্টিটি ফ্রেমওয়র্ক (Entity Framework) Entity Framework এর সাথে ASP.NET Core Integration |
217
217

Entity Framework (EF) এবং ASP.NET Core API এর মধ্যে ইন্টিগ্রেশন খুবই গুরুত্বপূর্ণ, কারণ এটি ডেটাবেস সংক্রান্ত কার্যক্রম যেমন ডেটা পড়া, লেখা, আপডেট করা এবং মুছে ফেলা সহজভাবে পরিচালনা করতে সাহায্য করে। ASP.NET Core API এবং EF Core ব্যবহার করে RESTful API তৈরি করার মাধ্যমে, আপনি ডেটাবেস অপারেশনগুলো খুবই দক্ষতার সাথে পরিচালনা করতে পারেন।

এখানে আমরা দেখব কীভাবে EF Core কে ASP.NET Core API এর সাথে ইন্টিগ্রেট করা যায় এবং বিভিন্ন API রুটের মাধ্যমে ডেটাবেস থেকে ডেটা রিট্রিভ করা, তৈরি করা, আপডেট করা এবং ডিলিট করা যায়।


1. ASP.NET Core API প্রজেক্ট তৈরি করা

প্রথমে, একটি নতুন ASP.NET Core Web API প্রজেক্ট তৈরি করতে হবে। Visual Studio ব্যবহার করে আপনি খুব সহজেই এই প্রজেক্টটি তৈরি করতে পারেন।

  • Visual Studio খুলুন
  • "Create a new project" এ ক্লিক করুন
  • "ASP.NET Core Web API" টেমপ্লেট নির্বাচন করুন
  • প্রজেক্টের নাম দিন এবং Create ক্লিক করুন
  • API Controller তৈরি করার জন্য Add -> Controller থেকে "API Controller - Empty" নির্বাচন করুন

2. Entity Framework Core ইনস্টল করা

ASP.NET Core API প্রজেক্টে Entity Framework Core ব্যবহার করতে হলে আপনাকে EF Core প্যাকেজ ইনস্টল করতে হবে। এটি ইনস্টল করার জন্য আপনি NuGet Package Manager বা Package Manager Console ব্যবহার করতে পারেন।

NuGet Package Manager ব্যবহার করে EF Core ইনস্টল

dotnet add package Microsoft.EntityFrameworkCore
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Tools

এই প্যাকেজগুলো ইনস্টল করার মাধ্যমে, EF Core আপনার প্রজেক্টে ব্যবহারযোগ্য হয়ে যাবে।


3. DbContext এবং মডেল তৈরি করা

EF Core ব্যবহার করতে হলে, আপনাকে একটি DbContext ক্লাস এবং মডেল তৈরি করতে হবে। DbContext ক্লাসটি ডেটাবেসের সাথে ইন্টারঅ্যাক্ট করতে ব্যবহৃত হয় এবং মডেল ক্লাসগুলো ডেটাবেস টেবিলের প্রতিনিধিত্ব করে।

উদাহরণ: User মডেল ক্লাস

public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
}

ApplicationDbContext ক্লাস

public class ApplicationDbContext : DbContext
{
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
        : base(options)
    { }

    public DbSet<User> Users { get; set; }
}

এই ক্লাসে, Users DbSet টেবিলের প্রতিনিধিত্ব করে।


4. Database Connection Configuration

ASP.NET Core এ appsettings.json ফাইলের মধ্যে ডেটাবেস সংযোগের তথ্য যোগ করতে হবে।

appsettings.json ফাইলে সংযোগ স্ট্রিং

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=ApiExampleDb;Trusted_Connection=True;"
  }
}

এখানে, "DefaultConnection" টোকেনটি ডেটাবেসের সংযোগ স্ট্রিং হিসেবে ব্যবহৃত হবে।

Startup.cs বা Program.cs ফাইলে DbContext কনফিগারেশন

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<ApplicationDbContext>(options =>
        options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
    services.AddControllers();
}

এখানে, ApplicationDbContext কনফিগার করা হচ্ছে এবং ডেটাবেসের সংযোগ স্ট্রিং ব্যবহার করা হচ্ছে।


5. API Controller তৈরি করা

এখন, একটি API Controller তৈরি করতে হবে যা ডেটাবেসের CRUD (Create, Read, Update, Delete) অপারেশন সম্পাদন করবে। এই Controller-এ EF Core এর DbContext ইনজেক্ট করে ডেটাবেস অপারেশন সম্পাদন করা যাবে।

উদাহরণ: UserController

[Route("api/[controller]")]
[ApiController]
public class UserController : ControllerBase
{
    private readonly ApplicationDbContext _context;

    public UserController(ApplicationDbContext context)
    {
        _context = context;
    }

    // GET: api/User
    [HttpGet]
    public async Task<ActionResult<IEnumerable<User>>> GetUsers()
    {
        return await _context.Users.ToListAsync();
    }

    // GET: api/User/5
    [HttpGet("{id}")]
    public async Task<ActionResult<User>> GetUser(int id)
    {
        var user = await _context.Users.FindAsync(id);

        if (user == null)
        {
            return NotFound();
        }

        return user;
    }

    // POST: api/User
    [HttpPost]
    public async Task<ActionResult<User>> PostUser(User user)
    {
        _context.Users.Add(user);
        await _context.SaveChangesAsync();

        return CreatedAtAction("GetUser", new { id = user.Id }, user);
    }

    // PUT: api/User/5
    [HttpPut("{id}")]
    public async Task<IActionResult> PutUser(int id, User user)
    {
        if (id != user.Id)
        {
            return BadRequest();
        }

        _context.Entry(user).State = EntityState.Modified;
        await _context.SaveChangesAsync();

        return NoContent();
    }

    // DELETE: api/User/5
    [HttpDelete("{id}")]
    public async Task<IActionResult> DeleteUser(int id)
    {
        var user = await _context.Users.FindAsync(id);
        if (user == null)
        {
            return NotFound();
        }

        _context.Users.Remove(user);
        await _context.SaveChangesAsync();

        return NoContent();
    }
}

এখানে, UserController ক্লাসে বিভিন্ন HTTP রিকোয়েস্ট যেমন GET, POST, PUT, DELETE এর মাধ্যমে CRUD অপারেশন করা হয়েছে।

  • GET /api/User: ডেটাবেস থেকে সব ইউজার লিস্ট করবে।
  • GET /api/User/{id}: নির্দিষ্ট ইউজার আইডি অনুসারে ইউজারের ডেটা রিট্রিভ করবে।
  • POST /api/User: নতুন ইউজার তৈরি করবে।
  • PUT /api/User/{id}: নির্দিষ্ট ইউজার আইডি অনুসারে ইউজারের তথ্য আপডেট করবে।
  • DELETE /api/User/{id}: নির্দিষ্ট ইউজার ডিলিট করবে।

6. Testing the API

এখন, আপনি Postman বা Swagger ব্যবহার করে API টেস্ট করতে পারেন। Swagger UI সাধারণত ASP.NET Core API প্রজেক্টে ডিফল্টভাবেই সংযুক্ত থাকে এবং এটি API রুটগুলো টেস্ট করার জন্য খুবই উপকারী।


7. Entity Framework এবং ASP.NET Core API এর জন্য বেস্ট প্র্যাকটিস

  • Dependency Injection ব্যবহার করে DbContext ইনজেক্ট করুন, যেন আপনার কোড টেস্টযোগ্য হয় এবং ডাটাবেসের সাথে সহজে যোগাযোগ করা যায়।
  • Async অপারেশন ব্যবহার করুন, যেমন ToListAsync(), FindAsync() ইত্যাদি, যা API এর পারফরম্যান্স বাড়ায় এবং আই/ও অপারেশনগুলো আরও কার্যকরীভাবে পরিচালনা করে।
  • DbContext Lifetime পরিচালনা করুন, যাতে এটি সঠিকভাবে Dispose হয় এবং মেমরি লিক বা অন্যান্য সমস্যা এড়ানো যায়।

EF এবং ASP.NET Core API ইন্টিগ্রেট করলে আপনি শক্তিশালী, স্কেলেবল এবং সহজে টেস্টযোগ্য অ্যাপ্লিকেশন তৈরি করতে পারবেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion