انتشار نسخه جدید Entity Framework Core 5.0 Preview 4

در این مقاله قابلیت جدید Fill factor و Precision در Preview 4 را بررسی میکنیم .

برای مشاهده Preview های قبلی میتوانید به لینک زیر مراجعه کنید .

انتشار نسخه جدید Entity Framework Core 5.0 Preview 3

انتشار نسخه جدید Entity Framework Core 5.0 Preview 2

پیش نیاز ها

پیش نمایش EF Core 5.0 نیاز به NET Standard 2.1. دارد این به چه معنی است :

EF Core 5.0 در NET Core 3.1. اجرا می شود و نیازی به NET Core 5.0. نیست . و ممکن است در پیش نمایش های آینده و بسته به نحوه تکامل برنامه برای NET Core 5. تغییر کند .
EF Core 5.0 بر روی سیستم عامل های دیگری که از NET Standard 2.1. پشتیبانی می کنند اجرا می شود.
EF Core 5.0 بر روی پلتفرم های  NET Standard 2.0. ، از جمله NET Framework. اجرا نمی شود.

 نحوه دریافت EF Core 5.0 previews

dotnet add package Microsoft.EntityFrameworkCore.SqlServer --version 5.0.0-preview.4.20220.10

قابلیت Precision/Scale

در EF Core همه داده های اعشاری Decimal به صورت پیش فرض به Decimal (18,2) در SQL Server تبدیل می شوند . حالا میتوانیم با استفاده از متد HasPrecision مقدار دلخواه خود را به صورت زیر تغییر دهیم :

modelBuilder
    .Entity<Blog>()
    .Property(b => b.Numeric)
    .HasPrecision(16, 4);

قابلیت Fill factor

SQL Server Index Fill Factor یک مقدار درصد است این گزینه در ویژگی های ایندکس (Index) برای مدیریت داده ها در data Pages موجود است

این یک نقش اساسی در تنظیم عملکرد پرس و جو (Query Performance Tuning) است .

مقدار پیش فرض 0 در ویژگی SQL Server Index با هر ایندکس جدول (Index of Tables) است این مانع از ذخیره سازی %100 در هر data Pages می شود و میتوانیم این مقدار را با استفاده از معیار عملکرد نسبت به ماهیت داده (performance benchmarking over nature of data) و اندازه داده ها (Size of data) تغییر دهیم در مقاله های بعدی در مورد کارآیی بیشترFill Factor در SQL Server صحبت خواهیم کرد .

امکان تنظیم کردن این مقدار قبلا وجود نداشته که با معرفی EF Core 5 Preview 4 این امکان با متد اضافه شده است برای این به منظور به صورت زیر استفاده میکنیم :

modelBuilder
    .Entity<Customer>()
    .HasIndex(e => e.Name)
    .HasFillFactor(90);