یاد بگیرید که چگونه می توانید از Entity Framework Core برای ثبت داده ها به کنسول، SQL Server و سایر اهداف گزارش هنگام کار با برنامه های ASP.NET Core 7 استفاده کنید.
Entity Framework Core (EF Core) یک نقشهبردار مدرن، منبع باز و مبتنی بر پایگاه داده است که دسترسی به دادهها را برای برنامههای NET ساده میکند. EF Core شما را قادر میسازد تا با دادههای منابع مختلف از جمله پایگاههای داده رابطهای، پایگاههای داده غیررابطهای و حتی دادههای درون حافظه کار کنید.
EF Core به شما امکان میدهد تا کدی را برای اجرای اقدامات CRUD (ایجاد، خواندن، بهروزرسانی و حذف) بنویسید بدون اینکه بدانید چگونه دادهها در پایگاه داده زیربنایی باقی میمانند. با استفاده از EF Core، میتوانید موجودیتها را از یک فروشگاه داده بازیابی کنید، موجودیتها را اضافه یا تغییر دهید یا حذف کنید، و از نمودارهای موجودیت عبور کنید.
به عبارت دیگر، EF Core دسترسی به دادههای شما را ساده میکند و به شما امکان میدهد تا کدی بنویسید که آن عملیات CRUD را با استفاده از اشیاء داتنت انجام میدهد، بدون اینکه مستقیماً با ارائهدهنده پایگاه داده اصلی تعامل داشته باشید. این مقاله در مورد نحوه استفاده از Entity Framework Core برای ثبت فعالیت پایگاه داده هنگام کار در برنامه های ASP.NET Core 7 صحبت می کند.
برای کار با نمونه کدهای ارائه شده در این مقاله، باید Visual Studio 2022 Preview را در سیستم خود نصب کرده باشید. اگر قبلاً نسخهای ندارید، میتوانید پیشنمایش Visual Studio 2022 را از اینجا بارگیری کنید.< /p>
یک پروژه ASP.NET Core minimal Web API در Visual Studio 2022 Preview ایجاد کنید
ابتدا، اجازه دهید یک پروژه ASP.NET Core در Visual Studio 2022 ایجاد کنیم. با دنبال کردن این مراحل، یک پروژه ASP.NET Core Web API 6 جدید در Visual Studio 2022 ایجاد می کنیم:
- Visual Studio 2022 Preview IDE را راه اندازی کنید.
- روی “ایجاد پروژه جدید” کلیک کنید.
- در پنجره “ایجاد پروژه جدید”، “ASP.NET Core Web API” را از لیست الگوهای نمایش داده شده انتخاب کنید.
- بعدی را کلیک کنید.
- در پنجره “پیکربندی پروژه جدید خود”، نام و مکان پروژه جدید را مشخص کنید.
- به صورت اختیاری، بسته به تنظیمات برگزیده خود، کادر انتخاب «قرار دادن راه حل و پروژه در یک فهرست راهنمای» را علامت بزنید.
- بعدی را کلیک کنید.
- در پنجره “اطلاعات اضافی” نشان داده شده در ادامه، .NET 7.0 (پیش نمایش) را به عنوان نسخه چارچوبی که می خواهید استفاده کنید انتخاب کنید.
- در مرحله بعد، علامت “Use controllers…” را بردارید زیرا در این مثال از حداقل API استفاده خواهیم کرد. تنظیم «نوع تأیید هویت» را به عنوان «هیچکدام» (پیشفرض) بگذارید.
- مطمئن شوید که چک باکسهای «Enable Docker»، «Configure for HTTPS» و «Enable Open API Support» علامت نخورده باشند زیرا ما در اینجا از هیچ یک از این ویژگیها استفاده نخواهیم کرد.
- روی ایجاد کلیک کنید.
این یک پروژه جدید ASP.NET Core 7 Web API در Visual Studio 2022 ایجاد میکند. ما از این پروژه برای نشان دادن ورود به EF Core 7 در بخشهای بعدی این مقاله استفاده خواهیم کرد.
گزینه های ورود به سیستم در Entity Framework Core
در Entity Framework Core، ورود به سیستم برای ردیابی پرس و جوهای پایگاه داده و سایر عملیات استفاده می شود. Entity Framework Core از چارچوب Microsoft.Extensions.Logging برای ثبت رویدادها استفاده می کند. این چارچوب طیف گسترده ای از ارائه دهندگان گزارش را ارائه می دهد که می توانند برای ضبط پیام های گزارش استفاده شوند.
بهطور پیشفرض، Entity Framework Core پیامهای گزارش را روی کنسول مینویسد. علاوه بر استفاده از چارچوب Microsoft.Extensions.Logging، Entity Framework Core از چارچوب های گزارش شخص ثالث مانند NLog و Serilog نیز پشتیبانی می کند. از این چارچوبها میتوان برای نوشتن پیامهای گزارش به فایلها، پایگاههای داده یا مقصدهای دیگر استفاده کرد.
اگر قصد دارید از EF Core و SQL Server در برنامه خود استفاده کنید، باید بسته Microsoft.EntityFrameworkCore.SqlServer NuGet را به پروژه خود اضافه کنید. پروژه را در Solution Explorer انتخاب کنید، سپس کلیک راست کرده و “Manage NuGet Packages” را انتخاب کنید. در NuGet Package Manager، Microsoft.EntityFrameworkCore.SqlServer را جستجو کنید و بسته را نصب کنید.
همچنین، میتوانید بسته را از طریق کنسول NuGet Package Manager با وارد کردن دستور زیر نصب کنید.
PM> Install-Package Microsoft.EntityFrameworkCore.SqlServer
یک کلاس مشتری در NET Core ایجاد کنید
یک کلاس با نام Customer در فایلی با همین نام با پسوند “.cs” ایجاد کنید و کد زیر را در آنجا بنویسید:
public class Customer
{
public int Id { get; set; }
public string FirstName { get; set; } = string.Empty;
public string LastName { get; set; } = string.Empty;
}
پیکربندی ورود به سیستم Entity Framework Core
شما می توانید از مزایای ورود به Entity Framework Core به دو روش استفاده کنید:
- از روش پسوند UseLoggerFactory استفاده کنید.
- از رابط ILoggerProvider استفاده کنید.
روش افزونه UseLoggerFactory روش توصیه شده برای پیکربندی ورود به سیستم EF Core است، زیرا امکان پیکربندی انعطافپذیرتر را فراهم میکند. برای استفاده از روش پسوند UseLoggerFactory، کافی است آن را همانطور که در قطعه کد زیر نشان داده شده است به کلاس DbContext خود اضافه کنید.
using Microsoft.Extensions.Logging;
public class MyDbContext : DbContext
{
public MyDbContext(DbContextOptions options)
: base(options){ }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseLoggerFactory(loggerFactory);
base.OnConfiguring(optionsBuilder);
}
ILoggerFactory loggerFactory = new LoggerFactory();
}
بهطور متناوب، میتوانید با استفاده از رابط ILoggerProvider همانطور که در قطعه کد زیر نشان داده شده است، گزارشگیری را پیکربندی کنید.
builder.Services.AddDbContext((provider, options) =>
{
var loggerFactory = provider.GetRequiredService();
options.UseLoggerFactory(loggerFactory);
});
دادههای گزارش EF Core را به کنسول ارسال کنید
می توانید از کد زیر برای پیکربندی نمونه DbContext خود برای استفاده از LoggerFactory استفاده کنید.
optionsBuilder.UseLoggerFactory(loggerFactory)
.EnableSensitiveDataLogging()
.UseSqlServer("Server=JOYDIP;Database=DemoDb;Trusted_Connection=True;");
برای فعال کردن EF Core برای ثبت اطلاعات در کنسول، میتوانید از کد زیر استفاده کنید.
optionsBuilder.UseSqlServer
("Server=JOYDIP;Database=DemoDb;Trusted_Connection=True;").
LogTo(Console.WriteLine).EnableDetailedErrors();
کد منبع کامل کلاس DbContext ما
کد منبع کامل کلاس DbContext برای مرجع شما در زیر آورده شده است.
public partial class DemoDbContext: DbContext
{
public DemoDbContext()
{}
public DemoDbContext(DbContextOptions < DemoDbContext > options): base(options)
{}
public virtual DbSet < Customer > Customer
{
get;
set;
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("Server=JOYDIP;Database=DemoDb;Trusted_Connection=True;").LogTo(Console.WriteLine).EnableDetailedErrors();
base.OnConfiguring(optionsBuilder);
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity < Customer > (entity =>
{
entity.Property(e => e.FirstName).IsRequired().HasMaxLength(50);
entity.Property(e => e.LastName).IsRequired().HasMaxLength(50);
});
}
}
ثبتنام انعطافپذیر با EF Core
Logging جزء حیاتی هر برنامه کاربردی برای شناسایی و تجزیه و تحلیل مشکلاتی است که ممکن است در زمان اجرا رخ دهد. هنگام کار با EF Core، میتوانید دادهها را به اهداف ورود داخلی وارد کنید و همچنین برنامه خود را با چارچوبهای گزارش شخص ثالث یکپارچه کنید تا دادهها را به اهداف گزارش از پیش پیکربندی شده ارسال کنید.
پست های مرتبط
نحوه کار با ورود به EF Core 7
نحوه کار با ورود به EF Core 7
نحوه کار با ورود به EF Core 7