ایجاد دیتابیس و ارتباط با SQL در ASP.NET Core

ایجاد دیتابیس و ارتباط با SQL در ASP.NET Core

لینک کوتاه مقاله:

مقدمه

حالا که در مقاله ساخت اولین پروژه Asp.net Core یاد گرفتید که چگونه شروع به برنامه نویسی سایت بکنید در این آموزش نوبت این رسیده که فرا بگیرید سایت خودتون را به یک دیتابیس متصل کنید در این مقاله بهتون ایجاد دیتابیس و ارتباط با SQL در Asp.net Core رو یاد میدهیم

ایجاد دیتابیس و ارتباط با SQL در Asp.net Core

اولین مرحله برای اینکه بتوانید پروژه را به SQL متصل کنید دانلود پکیج هایی برای شروع کار است پس رو نام پروژه کلیک راست کنید و گزینه Manage NuGet Packages کلیک کنید تا وارد صفحه زیر شوید

صفحه NuGet Packages برای نصب بسته های مورد نیاز

از بخش سمت چپ گزینه Browse را انتخاب کنید و از لیست سمت راست مثل من All را انتخاب کنید حالا در بخش جست و جو متن Microsoft.EntityFrameworkCore را وارد کنید و بعد این پکیج ها را نصب کنید البته به ورژن بسته ای که قرار هست نصب بشه و پروژه دقت کنید چون باید یکی باشند مثلا هر دو نسخه 5 باشند اگر روی یکی از پکیج ها کلیک کنید در لیست سمت چپ میتوانید نسخه ای قرار هست نصب بشه را عوض کنید.

حالا باید در فایل appsettings.json تنظیمات مربوط به دیتابیس را بنویسید که آیا رمز داره یا نه پیشفرض هستش به تصویر زیر دقت کنید تا براتون توضیح بدم

نوشتن تنظیمات مربوط به دیتابیس در appsettings.json
				
					"ConnectionStrings": {
    "Connection": "Data Source=DESKTOP-A78JMUH;Initial Catalog=ConnectionString_DB;Integrated Security = true"
  }
				
			

وقتی SQL را باز میکنید یک پنجره قبل از ورود باز میشود در بخش Server Name چیزی که نوشته شده بود دار جلوی Data Source مینویسید Initial Catalog هم نام دیتابیس شما در SQL هستش که به چه نامی ذخیره بشه و قابل نمایش باشه و در انتها Integrated Security هست که اگر زمان نصب SQL نام کاربری و رمز انتخاب نکرده باشید true مینویسید ولی اگه انتخاب کرده باشید که UserName و Password را بجای true مینویسید و مقادیر را پر میکنید حالا نوبت ساخت یک Model برای ثبت در دیتابیس است

تنظیمات اتصال به دیتابیس در DbContext

روی نام پروژه کلیک راست کنید و یک پوشه به اسم Models بسازید که محل ساختن مدل های شما است من برای تمرین یک Model به اسم User درست کردم دوباره یک کلاس دیگه در Models ایجاد میکنید برای DbContext و مثل تصویر زیر تنظیمات را انجام دهید

تنظیمات اتصال به دیتابیس در DbContext
				
					public ConnectionContext(DbContextOptions<ConnectionContext> options):base(options)
    {

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

کلاس شما حتما باید از DbContext ارث بری کند و کلاس هایی که به عنوان مدل هستند به صورت یک Property مانند کد بالا نوشته میشوند حالا نوبت تنظیمات در Startup هست

انجام تنظیمات اتصال سایت به دیتابیس در Startup

دو قسمت کد IConfiguration و AddDbContext وجود ندارند که شما باید بنویسید کد ها را براتون قرار میدهم و کاربرد هر کدوم را توضیح میدهم

				
					public Startup(IConfiguration configuration)
    {
            Configuration = configuration;
    }
    public IConfiguration Configuration { get; }
				
			

با این قطعه کد شما میتوانید با Configuration به GetConnectionString دسترسی داشته باشید تا نام رشته اتصال را وارد کنید همان چیزی که در appsettings نوشتیم

				
					services.AddDbContext<ConnectionContext>(options =>
    {
        options.UseSqlServer(Configuration.GetConnectionString("Connection"));
    });
				
			

کد بالا برای این نوشته میشود که شما به سایت Context و رشته اتصال خود را ذخیره کنید دقت کنید به همین شکل که گفتم با GetConnectionString به رشته اتصال دسترسی دارید.

حالا نوبت Migration زدن هست که سایت به دیتابیس وصل بشه و جداول ساخته شوند جداول سایت همان چیز هایی هستند که در پوشه Models ساختیم مثل User برای Migration زدن از منو بالا ویژوال استودیو وارد بخش Tools میشوید بعد NuGet Package Manage و در نهایت Package Manage Console را انتخاب میکنید تا صفحه زیر باز شود

Migration زدن در کنسول

برای زدن migration جدید دستور Add-Migration را مینوسید و یک نام هم مثل مثال انتخاب میکنید و Enter میزنید تا Migration ساخته شود و بعد دستور Update-Database را نوشته و Enter میزنید تا دیتابیس شما ساخته شود این بود مقاله ایجاد دیتابیس و ارتباط با SQL در Asp.net Core اگر سوالی داشتید در کامنت ها و یا تماس با ما بنویسید

آخرین پست ها:

پرسش و پاسخ

اگر در مورد این مقاله سوالی داشتید در صفحه تماس با ما به اشتراک بذارید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.