tgoop.com/fullStackDevs/503
Last Update:
#EFCore5Preview3
#EFCore5
معرفی Entity Framework Core 5.0 Preview 3
🔸پیش نمایش های EF Core 5.0 نیاز به NET Standard 2.1 دارد. این یعنی:
▫️انتیتی فریمورک Core 5.0 در NET Core 3.1 اجرا می شود. نیازی به NET 5 ندارد.( این ممکن است در پیش نمایش های آینده بسته به نحوه تکامل برنامه برای NET 5 تغییر کند.)
▪️انتیتی فریمورک Core 5.0 بر روی سیستم عامل های دیگری که از NET Standard 2.1 پشتیبانی می کنند اجرا می شود.
▫️انتیتی فریمورک Core 5.0 بر روی سیستم عاملهای استاندارد NET Standard 2.0، از جمله Net Framework اجرا نمی شود.
🔹چگونه می توان پیش نمایش های EF Core 5.0 را دریافت کرد:
انتیتی فریمورک منحصراً به صورت مجموعه ای از NuGet packages توزیع می شود.
به عنوان مثال ، برای افزودن SQL Server provider به پروژه خود ، می توانید از دستور زیر با استفاده از ابزار dotnet استفاده کنید:
dotnet add package Microsoft.EntityFrameworkCore.SqlServer --version 5.0.0-preview.3.20181.2همچنین نسخه 5.0 پیش نمایش 3 از ارائه دهنده Microsoft.Data.Sqlite.Core ADO.NET را منتشر کرده ایم.
🔸نصب dotnet ef
مانند EF Core 3.0 و 3.1 ، ابزار خط فرمان dotnet ef دیگر در .NET Core SDK گنجانده نشده است. قبل از اجرای دستورات EF Core migration or scaffolding commands ، باید این بسته را به عنوان یک ابزار global یا محلی نصب کنید.
برای نصب ابزار ، ابتدا نسخه های موجود را با استفاده از زیر حذف کنید:
dotnet tool uninstall --global dotnet-efسپس دستور زیر برای نصب نسخه پیش نمایش:
dotnet tool install --global dotnet-ef --version 5.0.0-preview.3.20181.2🔹می توان از این نسخه جدید dotnet ef با پروژه هایی استفاده کرد که از نسخه های قدیمی تر EF Core runtime استفاده می کنند.
🔻امکانات جدیدی که به این نسخه اضافه شده:
✅Filtered Include
پشتیبانی قابلیت Filter کردن Include ها
var blogs = context.Blogsاین Query بلاگ ها را به همراه هر post مرتبط باز می گرداند ، اما فقط هنگامی که عنوان post حاوی "cheese" باشد.( برای جزئیات کامل به مستندات شامل مراجعه کنید.)
.Include(e => e.Posts.Where(p => p.Title.Contains("Cheese")))
.ToList();
✅New ModelBuilder API for navigation properties
متد جدید Navigation که وقتی navigation properties نیاز به تنظیمات اضافی داشته باشد میتونید استفاده کنید.
modelBuilder.Entity<Blog>().Navigation(e => e.Posts).HasField("_myposts");
⛔️توجه داشته باشید که API navigation جایگزین پیکربندی relationship نمی شود.
درعوض امکان تنظیمات اضافی از خصوصیات navigation را در روابط قبلاً تعریف شده فراهم می کند.
✅New command-line parameters for namespaces and connection strings
اکنون Migrations و scaffolding اجازه می دهد تا namespaces در خط فرمان مشخص شود.
به عنوان مثال ، برای مهندسی معکوس یک database که context و کلاس های مدل را در namespace های مختلف نامگذاری می کند
dotnet ef dbcontext scaffold "connection string" Microsoft.EntityFrameworkCore.SqlServer --context-namespace "My.Context" --namespace "My.Model"همچنین ، connection string اکنون می تواند به دستور database-update منتقل شود:
dotnet ef database update --connection "connection string"✅EnableDetailedErrors has returned
به دلایل عملکرد ، EF در هنگام خواندن مقادیر از پایگاه داده ، بررسیهای null-checks را انجام نمی دهد.
و در صورت مواجهه با null ، این امر می تواند به exception منجر شود.
با استفاده از EnableDetailedErrors ، بررسیهای null checking اضافه می شود.
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)@fullStackDevs
=> optionsBuilder
.EnableDetailedErrors()
.EnableSensitiveDataLogging() // Often also useful with EnableDetailedErrors
.UseSqlServer(Your.SqlServerConnectionString);
BY Web Devs

Share with your friend now:
tgoop.com/fullStackDevs/503