آموزش روش Database First

آموزش روش Database First در ASP.NET Core
آموزش روش Database First در ASP.NET Core

روش Database First چیست؟ چگونه از روش Database – First در ASP.NET Core 2 استفاده کنیم ؟ چگونه عملیات درج ، آپدیت و ویرایش اطلاعات را در روش Database First انجام دهیم؟

بخش ۱ : Entity Framework Core چیست ؟
بخش ۲ : آموزش افزودن Entity Framework Core 2.2 به پروژه
بخش ۳ : آموزش روش Database First در EF Core 2.2 (همین مقاله)

آموزش روش DataBase First

در روش Database First ، یک دیتابیس آماده داریم و این دیتابیس به یکسری کلاس ها تبدیل می شود. به ازای هر جدول از دیتابیس یک کلاس ایجاد می شود و ستون های هر جدول Property های این Class را تشکیل می دهند.

ابتدا یک دیتابیس به نام StudentDB در نرم افزار SQL Server ایجاد می کنیم. این دیتابیس شامل سه جدول به نام های Student ، Course و Student_Course می باشد همانند تصویر زیر

روش Database-First در EF Core
روش Database-First در EF Core

 

حالا برای تبدیل دیتابیس StudentDB به کلاس های مدل ، دستور زیر را در پنجره ی Package Manager Console وارد نموده و دکمه Enter را بزنید تا این دستور اجرا شود.

Scaffold-DbContext "Server=(local);Database=StudentDB;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

در دستور بالا بعد از Scaffold-DbContext ، رشته اتصال یا Connection String رو تعریف کردیم و در انتهای دستور هم از output Models- استفاده کردیم تا کلاس های مربوط به دیتابیس در پوشه Models ایجاد شوند.

بعد از اجرای دستور بالا کلاس های Student ، Course ، StudentCourse و StudentDBContext به پوشه Models اضافه می شوند.

آپدیت کردن کلاس های دیتابیس در روش Database – First

چنانچه در SQL Server ، تغییری در دیتابیس خود ایجاد کردید می توانید با وارد کردن دستور زیر در پنجره ی Package Manager Console کلاس های مربوط به دیتابیس خود را آپدیت کنید.

Scaffold-DbContext "Server=(local);Database=StudentDB;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Force

افزودن کدهای درج ، حذف ، ویرایش و نمایش اطلاعات به Controller

حالا یک کنترلر به پروژه اضافه کنید نوع کنترلر را MVC Controller With Views , using Entity Framework انتخاب کرده و روی Add کلیک کنید.

آموزش EF Core - افزودن کنترلر
آموزش EF Core – افزودن کنترلر

حالا در پنجره باز شده بر از قسمت Model Class نام کلاسی که می خواهید کدهای مربوط به عملیات درج ، حذف ، ویرایش و نمایش اطلاعات برای آن در Controller ایجاد شود را انتخاب کنید ، از قسمت Data context class نام کلاس Context را انتخاب نموده که نام کلاس context پروژه StudentDBContext هست و در قسمت Controller name هم می توانید نام کنترلر را تغییر دهید ، سپس بر روی دکمه Add کلیک کنید تا این کنترلر به همراه کدهای عملیات درج ، حذف ، ویرایش و نمایش اطلاعات برای شما ایجاد شود.

روش Database First - ایجاد کنترلر
روش Database First – ایجاد کنترلر

 

فیلم آموزشی asp.net core 2

آرزو ابراهیمی
بیش از 6 سال است که زمینه طراحی و توسعه سایت فعالیت می‌کنم، طراح و برنامه نویس انواع سامانه‌های تخصصی پزشکی، مناقصات، فروشگاهی و … بودم و هستم و هدفم در سایت میزفا ارائه اطلاعات بروز و ناب در زمینه طراحی سایت است. تا از این طریق بتونم تجربیات و دانسته های خودم را با تمامی علاقمندان به مباحث طراحی سایت به اشتراک بزارم .

فیلم آموزشی asp.net core 2

23 نظر

23 پاسخ

  1. سلام خسته نباشید. من به روش db -first یک پروژه ساختم و حالا یکی از جداولم در دیتابیس را تغییر دادم و میخوام این تغییر توی models هم رخ بده ولی بقیه کلاس هایی که از قبل ساختم و تغییراتی روشون دادم تغییر نکنند باید چه دستوری بزنم که فقط همون یه کلاس تغییر کنه و بقیه کلاسها دست نخورده باقی بمونند. در ضمن دستور -force را هم زدم کل کلاسهام از نوع ساخته شد و همشون تغییر کردند که من این رو نمیخواستم. لطفا راهنماییم کنید. ممنونم

  2. سلام. وقتتون بخیر. بخاطر آموزش خوب و کاربردیتون ممنونم.
    میشه لطفا بفرمایید اگر از طریق این روش یه پایگاه داده موجود رو به پروژه مون اضافه کنیم و بعد بخوایم در ادامه کار از طریق روشهای کد فرست جدول به این مدل اضافه کنیم یا تغییراتی در مدل بدیم، امکانش هست؟ شما تو اموزش فرمودین اگر در sqlserver تغییری ایجاد شد میشه مدل رو هم آپدیت کنیم. برعکسش چطور؟ تغییرات مدل رو هم میشه به sql server انتقال بدیم؟ مثلا مثل روشهای مهاجرت؟

    1. سلام وقتتون بخیر
      خیر در روش Database First دیگه نمی تونید از Code First استفاده کنید پس همین ابتدای راه تضمبم خودتون رو بگیرید که کدوم روش براتون راحت تر هست
      زمانی که شما مدل رو تغییر میدید باید خودتون دیتابیس رو هم دستی تغییر بدید و دیگه نمی تونید برای آپدیت از امکانات روش Code First استفاده کنید.

  3. باسلام
    من وقتی از Scaffold-DbContext “Server=(local);Database=StudentDB;Trusted_Connection=True;” Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models استفاده می کنم با خطای زیر مواجه می شوم . در صورت امکان راهنمایی بفرمائید.
    A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 – Could not open a connection to SQL Server)

    1. سلام وقتتون بخیر
      اول مطمپن بشید که دیتابیس شما ساخته شده در SQL SERVER
      احتمالا MSSQL شما Stop شده و شما باید از طریق مسیر زیر Run اش کنید
      (ComputerManagement -> Services And Applications -> Sql Server Configuration Manager -> Sql Server Services -> Sql Server (MSSQL SERVER
      روی MSSQL SERVER راست کلیک کنید و بعدش Run رو انتخاب کنید.

  4. سلام من طبق گفته های شما پروژه خودمو ساختم
    اما وقتی پروژه رو اجرا میکنم خطای زیر را به من نشون میده:
    AggregateException: Some services are not able to be constructed (Error while validating the service descriptor

    1. سلام وقتتون بخیر
      خطای ایجاد شده به خاطر تزریق وابستگی هست شما یک سرویس دارید و باید در کلاس Startup.cs تزریق وابستگی برای این سرویس رو پیکربندی کنید با استفاده از متدهای AddTransient و …

      1. سلام ببخشید من میخوام به روش database first در asp.net core 3 به دیتا بیس وصل بشم ولی نمیدونم connection string رو چطور بنویسم اگه میشه راهنمایی کنید
        ممنون

        1. سلام وقتتون بخیر
          شما باید در فایل appSettings.json یک Connection String تعریف کنید. به صورت زیر


  5. سلام
    ممنون از آموزش های عالی شما می خواستم بدونم اگر کلاس ها را با استفاده از dtabaseFirst ساختیم و حالا پشیمون شدیم و بخواهیم از یک پایگاه داده دیگه استفاده کنیم چگونه با دستوری همه را حذف کنیم؟

    1. سلام وقتتون بخیر ، خواهش میکنم ، خوش حالم مورد رضایت شما بوده است.
      فکر نمیکنم دستوری برای اینکار وجود داشته باشه ، به راحتی می تونه فایل های داخل پوشه Models که پروژه اضافه شدن روحذف کنیم. یا کلا پوشه Models رو حذف کنیم و دوباره بسازیم.

  6. سلام خسته نباشید .در روش database first ،در رابطه با کلاس های ایجاد شده و نحوه استفاده از اونها توضیحی در سایت ندارین؟ چون من وقتی طبق این روش کلاس هارو ایجاد کردم ،نمیدونستم که چطوری باید روی دیتابیس عملیات انجام بدم.
    اگر راهنمایی کنید ممنون میشم.

    1. سلام وقتتون بخیر شما با استفاده از EntityFramework میتونید عمیات درج و حذف و آپدیت و … روی دیتابیس انجام بدید.

  7. با عرض سلام در Package Manager Console این دستور رو وارد کردم
    PM> Scaffold-DbContext “Data Source=PROGRAMMING;Initial Catalog=StudentDB;Integrated Security=True;”
    ولی این پیغام خطا ظاهر میشه

    Scaffold-DbContext : The term ‘Scaffold-DbContext’ is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was
    included, verify that the path is correct and try again.
    At line:1 char:1
    + Scaffold-DbContext “Data Source=PROGRAMMING;Initial Catalog=StudentDB …
    + ~~~~~~~~~~~~~~~~~~
    + CategoryInfo : ObjectNotFound: (Scaffold-DbContext:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
    ممکنه راهنمایی بفرمایید
    سپاس

    1. سلام وقتتون بخیر
      از طریق Package Manager console دستور زیر را اجرا کنید تا پکیج Microsoft.EntityFrameworkCore.Tools نصب شود سپس دوباره دستور را وارد کنید.
      Install-Package Microsoft.EntityFrameworkCore.Tools

  8. سلام ببخشید تو دوره asp. Core آموزش تولید api به صورت json برای استفاده در اندروید موجوده؟ اگر بله تو کدوم فصل (:

  9. سلام . ممکنه همینطور که به صورت ساده این آموزش را قرار دادید . نحوه تزریق وابستگی را در ادامه آموزش بدین ؟
    ممنون

    1. سلام ، تا یک ماه آینده آموزش های مقاله محور زیادی برای ASP.NET Core خواهیم داشت تزریق وابستگی هم جزو آموزش هایی هست که در آینده منتشر می شود.

  10. سلام من سه تا سر فصل آخر شما رو انجام دادم . از آموزش EntityFramework Core . ولی برنامم ارور میده توی اجرای کنترلر. نباید Dependency Injection انجام داد؟؟

    اینم ارورش :

    InvalidOperationException: Unable to resolve service for type ‘WebEnsh1.Models.ENSHEABContext’ while attempting to activate ‘WebEnsh1.Controllers.PmankarsController’.

    1. سلام ، بله باید تزریق وابستگی انجام داد برای کلاس Context ، تا این خطا رفع بشه.

    1. سلام دوست عزیز، وقت شما بخیر. ما کلی مقاله رایگان درباره سئو وردپرس داریم و همینطور خدمات افزایش سرعت سایت برای وردپرس و از طرفی آموزش های خصوصی حرفه ای برای وردپرس فراهم است. و همینطور دوره های مجازی که برای سایت‌های وردپرس مفید هستند مثل سرچ کسنول و gtmetrix و …. همه این موارد در منو سایت قابل دیدن هستند. موفق باشید.

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

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

حداکثر حجم فایل برای آپلود: 1 مگابایت. فایل‌های مجاز برای آپلود: عکس, ویس, ویدیو, ورد یا پی دی اف, فایل متنی, زیپ. شما می‌تونید برای بهتر پرسیدن سوالتون، عکس یا ویس یا حتی فیلم در بخش نظرات میزفا آپلود کنید. برای ضبط ویس می‌تونید از خود واتس آپ استفاده کنید و بعد اینجا آپلود کنید و برای ارسال عکس هم کافی هست اسکرین شات بگیرید. Drop file here

با موفقیت ثبت شد، میزفا از شما برای عضویت در خبرنامه هفتگی تشکر میکند.

عضویت در خبرنامه هفتگی برای دریافت:

  • فیلم و مقاله رایگان سئو
  • آموزش‌های UX ، GA و GTM
  • مقاله های تخصصی ASP.NET Core
  • اطلاع رسانی از محصولات
فیلم آموزشی asp.net core 2
ترک میزفا خوب نیست!
معرفی جامع‌ترین ابزار سئو در ایران
بالای ۱۰ هزار عضو
PHZpZGVvIHdpZHRoPSI2MDAiIGhlaWdodD0iMzUwIiBwb3N0ZXI9Imh0dHBzOi8vbWl6ZmEuY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzLzIwMjMvMDUvcG9zdGVyLW1pemZhLXRvb2xzLXZpZGVvLW1pbi5wbmciIGNvbnRyb2xzIHByZWxvYWQ9Im5vbmUiPiANCiAgIDxzb3VyY2Ugc3JjPSJodHRwczovL21pemZhLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA1L21pemZhX3Rvb2xzXzcyMHAubXA0IiB0eXBlPSJ2aWRlby9tcDQiPg0KPC92aWRlbz4=