در این مقاله،میخواهیم راجب عملیات CRUD با NET Core 2. و Entity Framework با دیتابیس SQL Server صحبت کنیم. تا پایان این مقاله همراه ما باشید.
اطلاعاتی در رابطه با روشهای مختلف جهت اتصال به SQL Server Database و مراحل بازیابی دادهها از یک SQL Server Database با استفاده از .NET Core و Entity Framework ارائه خواهیم کرد.
در ادامه ابزارهای مورد استفاده در این مطلب آمده است.
- Visual Studio 2019
- NuGet Packages
- SQL Server 2016
- .NET Core 2.0
- .NET Core Web Application
- Entity Framework
- زبان C#
ایجاد یک پروژه در Visual Studio 2019
برای شروع، یک پروژهی ” ASP.NET Core Web Application ” ایجاد خواهیم کرد.
۱- Visual Studio را باز کنید.
۲- در پنجرهی” start، ” Create a new project را انتخاب کنید.
۳- در پنجرهی ” Create a new project “، قالب ASP.NET Core Web Application را انتخاب کرده، سپس ” Next ” را انتخاب کنید.
۴- در پنجرهی ” Configure your new project “، ” SQLServerDataRetrieval ” را به عنوان نام پروژه وارد کنید.
سپس، ” Create ” را انتخاب کنید.
۵- در پنجرهی ” Create a new ASP.NET Core Web Application “، تایید کنید که ASP.NET Core 2.0 یا جدیدتر در منوی آبشاری بالای صفحه ظاهر شود.
سپس، ” Web Application ” که حاوی مثال Razor Pages است را انتخاب کنید. سپس، ” Create ” را انتخاب کنید.
۶- Visual Studio ؛ پروژهی جدید شما را باز میکند.
افزودن NuGet Package ها به پروژهی ایجاد شدهی فوق
در منوی Visual Studio، به مسیر Tools >> NuGet Package Manager >> Package Manager Console بروید.
سپس، فرمان زیر را برای نصب EntityFramework جهت فراهم آوردن روشی برای اتصال به SQL Server اجرا کنید:
Install-Package Microsoft.EntityFrameworkCore.SqlServer
برای ایجاد یک پایگاهداده از مدل EntityFramework Core شما توسط Entity Framework Core Tools، فرمان زیر را اجرا کنید:
Install-Package Microsoft.EntityFrameworkCore.Tools
روشهای متنوع جهت اتصال به SQL Server
در نسخههای پیشین ( ASP.NET (.NET Frameworks، از web.config برای رشتههای اتصال استفاده میکردیم اما در ASP.NET Core، روشهای زیر را جهت ایجاد رشتههای اتصال پایگاهدادهی SQL Server در اختیار داریم.
نکته:
دو روش زیر از کلاسی به نام “MyDbContext” استفاده میکنند که پس از اتمام هر دو گزینه توضیح خواهیم داد.
رشتهی اتصال در “Startup.cs”
کدگذاری اختصاصی رشتهی اتصال درون فایل Startup.cs در کد زیر:
var connectionString = @"Data Source=ABCD;Initial Catalog=Person2;Integrated Security=False;Persist Security Info=False;User ID=sa;Password=******"; services.AddDbContext<MyDbContext>(options => options.UseSqlServer(connectionString));
رشتهی اتصال از ” appsetting.json ” به ” Startup.cs “
در startup.cs، کد زیر جهت آگاهسازی سیستم از اینکه اتصال در appsetting.json تعریف شدهاست، مورد نیاز میباشد.
services.AddDbContext<MyDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("connectionString")));
جایی که ” connectionString ” در appsetting.json در دایرکتوری اصلی برنامه تعریف شدهاست.
{ "Logging": { "IncludeScopes": false, "LogLevel": { "Default": "Warning" } }, "ConnectionStrings": { "connectionString": "Data Source=ABCD;Initial Catalog=Person2;Integrated Security=False;Persist Security Info=False;User ID=sa;Password=******" } }
” MyDbContext “، کلاس متن دادهای ما است و بصورت زیر میباشد:
public class MyDbContext : DbContext { public MyDbContext(DbContextOptions<MyDbContext> options) : base(options) { } public DbSet<MyUser> MyUser {get; set;} }
Scaffolding command
یک پوشهی جدید در Solution مربوط به Visual Studio افزوده و نام آن را ” DBModels ” بگذارید.
فرمان زیر را در NuGet Package Manager Console اجرا کنید.
Scaffold-DbContext “ Server=RRR;Database=Person2;User ID= sa; Password=*****; ”
Microsoft.EntityFrameworkCore.SqlServer -OutputDir DBModels
نکته:
اگر دستور فوق خطا بدهد، آنگاه فرمان زیر را در NuGet Package Manager Console اجرا کنید.
Install-Package Microsoft.EntityFrameworkCore.Tools
پس از اجرای فرمان فوق، کلاسهای Model و کلاسهای context داخل پوشهی خروجی DBModels ایجاد میشوند.
نکته:
اطمینان حاصل کنید که جدول SQL Server که دادهها باید از آن واکشی شوند، دارای یک Primary KEY اختصاصیافته میباشد، در غیر اینصورت خطا خواهد داد.
حال، با استفاده از کلاسهای متن و مدلها، میتوانیم دادهها را بصورت زیر از پایگاهداده بدست آوریم.
نمایش دادههای واکشی شده از پایگاهداده بر روی نمایشگر
مجدد جهت دستیابی به عملیات CRUD برای Model افزوده شده در مراحل پیشین، از Scaffolding استفاده خواهیم کرد.
۱- پوشهای جدید در زیر “Pages ” اضافه کرده و آن را بر اساس مدلی (جدول Database) که از SQL Server به آن متصل شدید، نامگذاری کنید.
برای مثال آن را بصورت ” UPSErrors ” نامگذاری میکنیم.
۲- برروی پوشهی ” UPSErrors ” راست کلیک کرده، Add >> New ScaffoldItem را انتخاب کنید.
۳- در کادر محاورهای “(Add Scaffold”، “Razor Pages using Entity Framework (CRUD” را انتخاب کرده و بر روی آن جفت کلیک کنید.
۴- در کادر محاورهای “(Add Razor Pages using Entity Framework (CRUD”، کلاس Model را، که میخواهید عملیات CRUD را بر روی آن انجام دهید، از منوی آبشاری انتخاب کنید.
۵- پس از انتخاب یک کلاس Model ، کلاس DataContext را از منوی آبشاری انتخاب کرده و درنهایت، بر روی ” Add ” کلیک کنید.
۶- فایلهای ( CRUD Operations (Create.cshtml، Delete.cshtml، Details.cshtml، Edit.cshtml و Index.cshtml ایجاد خواهند شد.
۷- حتما ” Startup.cs ” را برای خط مذکور در ادامه بررسی کنید، چرا که جزئیات مرتبط با Context را به ConfigureServices اضافه خواهد کرد.
۸- فایلها را با راست کلیک بر روی فایل Index و باز کردن با مرورگر امتحان کنید.
هیچ دیدگاهی نوشته نشده است.