پرش به مطلب اصلی

اتصال ASP.NET به دیتابیس


در این بخش می خواهیم آموزش نحوه اتصال ASP.NET به دیتابیس را در هاست ASP.NET Core دات نت کور به شما آموزش دهیم.

اتصال به دیتابیس SQL Server

برای اتصال به دیتابیس SQL Server در سرویس ASP.Net Core کافیست ابتدا از طریق حساب کاربری خود یک دیتابیس SQL Server ایجاد کنید و سپس با استفاده از دستورعمل زیر دیتابیس را به سرویس خود متصل کنید.

بعد از ایجاد دیتابیس در حساب کاربری خود، باید اطلاعات دیتابیس ایجاد شده را به ASP.Net Core معرفی کنید. برای این کار کافیست هاست، نام کاربری، رمزعبور، پورت ایجاد شده را به صورت زیر به ASP.Net Core معرفی کنید.

{
"ConnectionStrings": {
"DefaultConnection": "Server=هاست, پورت;Database=نام دیتابیس;User Id=نام کاربری;Password=رمز عبور;"
}
}

سپس، در کد برنامه خود، رشته اتصال را از فایل appsettings.json بخوانید و از آن برای اتصال به پایگاه داده استفاده کنید. نمونه کد زیر را بررسی کنید:

using System;
using System.Data.SqlClient;

class Program
{
static void Main()
{
// خواندن رشته اتصال از فایل appsettings.json
string connectionString = Configuration.GetConnectionString("DefaultConnection");

using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();

// استفاده از اتصال

connection.Close();
}
}
}

اتصال به دیتابیس Mysql

برای اتصال به دیتابیس Mysql در سرویس ASP.Net Core کافیست ابتدا از طریق حساب کاربری خود یک دیتابیس Mysql ایجاد کنید و سپس با استفاده از دستورعمل زیر دیتابیس را به سرویس خود متصل کنید.

بعد از ایجاد دیتابیس در حساب کاربری خود، مراحل زیر را به ترتیب طی نمایید تا دیتابیس به سرویس متصل شود.

ابتدا، از پکیج MySql.Data.EntityFrameworkCore در پروژه‌ی خود استفاده کنید. بهتر است این کار را از طریق پکیج منیجر NuGet انجام دهید.

در کلاس Startup.cs، درون سرویس‌ها (Services)، اضافه کردن (Service) مربوط به اتصال به دیتابیس MySQL را انجام دهید. این کار را با استفاده از رشته اتصال و سرویس AddDbContext انجام دهید:

using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using MySql.Data.EntityFrameworkCore.Extensions;

public class Startup
{
private readonly IConfiguration _configuration;

public Startup(IConfiguration configuration)
{
_configuration = configuration;
}

public void ConfigureServices(IServiceCollection services)
{
string connString = _configuration.GetConnectionString("DefaultConnection");

services.AddDbContext<YourDbContext>(options =>
options.UseMySQL(connString)
);

// سایر تنظیمات و سرویس های دیگر
}

// سایر متدها
}

حالا باید اطلاعات مربوط به رشته اتصال را در فایل appsettings.json تنظیم کنید:

{
"ConnectionStrings": {
"DefaultConnection": "server=HOST,PORT;database=NAME;user=USERNAME;password=PASS"
},
"Logging": {
// تنظیمات لاگ
},
// سایر تنظیمات
}

در صورتی که با ارور unable to connect برخوردید میتوانید به جای کامند DefaultConnection بالا از کامند زیر استفاده نمایید:

"DefaultConnection": "server=HOST,PORT;database=NAME;user=USERNAME;password=PASS;SslMode=none"

در این مثال، DefaultConnection مبربوط به تنظیمات اتصال به دیتابیس است که از آن در کد استفاده می‌کنیم. شما باید HOST، PORT، NAME، USERNAME و PASS را با مقادیر سرویس دیتابیس ساخته شده در چابکان جایگزین کنید.

حالا می‌توانید در کلاس‌های DbContext خود، به راحتی از اتصال به دیتابیس MySQL استفاده کنید. برای مثال، این‌جا YourDbContext یک کلاس DbContext است که از آن در کد استفاده می‌کنیم:

using Microsoft.EntityFrameworkCore;

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

// تعریف دی بی ست ها و سایر تنظیمات مربوط به مدل دیتابیس
}

شما می‌توانید DbSet ها را بر اساس مدل دیتابیس خود تعریف کنید و اقدامات مورد نیاز خود را بر روی این DbSet ها انجام دهید.