tgoop.com/fullStackDevs/572
Last Update:
معرفی
🔻.NET 5.0 Preview 8
🔻EF Core 5.0 Preview 8
🔻ASP.NET Core (updates) in .NET 5 Preview 8
اخیرا پیش نمایش 8 از دات نت 5 معرفی شده و این نسخه از فریم وورک پیش تر از گذشته به نسخه نهایی خود نزدیک شده است همچنین پیش نمایش جدیدی از EF Core 5 و ابدیت های جدیدی برای Asp.Net Core معرفی شده است.
برای دریافت و استفاده از این ویژگی ها ویژال استادیو خود را به اخرین نسخه ابدیت کنید.
در این پست به معرفی ویژگی های مهم
EF Core 5.0 preview 8
می پردازیم.
نسخه EF Core 5.0 دات نت استاندارد 2.1 را پیاده سازی کرده است و میتوانید EF Core 5 را بروی NetCore 3.1 هم اجرا کنید و لزوما نیازی نیست تا نسخه فریم وورک حتما Net 5 باشد.
در پست های قبل گفتیم رابط خط فرمان
Ef Core 3.1 , Ef Core 3.0
به صورت پکیجی جدا نصب میشوند و دیگر به همراه خود فریم وورک عرضه نمیشوند در Ef Core 5 نیز به همین صورت میباشد و برای استفاده از رابط خط فرمان EF Core 5 باید آنرا نصب کنید.
از این رابط برای اجرای دستورات Migration و یا scaffold کردن سایر فرمان های دیگر استفاده میشود.(اصطلاحا به آن DotNet tool گفته میشود.)
یک Net tool. ناگت پکیجی است که شامل یک پروژه کنسول اپلیکیشن میباشد و آنرا میتوانید به صورت global یا local بروی ماشین خود نصب کنید. tool هایی که به صورت global نصب میشوند از طریق هر دایرکتوری بروی ماشین قابل اجراست.
در مقابل tool هایی که به صورت لوکال نصب میشوند فقط از طریق همان دایرکتوری و ساب دایرکتوری هایش در دسترس خواهند بود.
رابط خط فرمان این پیش نمایش بدین صورت قابل نصب است :برای نصب به صورت گلوبال :
dotnet tool install
--global
dotnet-ef --version 5.0.0-preview.8.20407.4اگر قبلا نصب کرده اید فقط باید آنرا آبدیت کنید :
dotnet tool update
--global
dotnet-ef --version 5.0.0-preview.8.20407.4اما موارد جدید در EF Core 5 Preview 8
Table-per-type (TPT) mapping
در Ef Core برای نمایش سلسله مراتب ارث بری Model ها در دیتابیس سه روش وجود دارد :
Table Per Hierarchy (TPH)
در این روش از یک تیبل جدا برای نمایش تمام کلاس ها (مدل کلاس ها) در یک سلسله مراتب ارث بری استفاده میشود، همچنین این تیبل یک ستون به نام discriminator خواهد داشت که برای متمایز ساختن مدل ها از یک دیگر ساخته میشود .
نام تیبل ساخته شده از نام base Class گرفته میشود یا نامی که به وسیله تعریف DbSet مشخص کرده اید. توضیحات بیشتر
Table Per Type (TPT)
در این روش به ازای هر کلاس (شامل ابستراکت کلاسها ) در سلسله مراتب ارث بری یک تیبل جدا ساخته میشود و کلاس های مشتق شده به وسیله یک کلید خارجی به base class خود مرتبط میشوند. لینک مثال
Table Per Concrete Type (TPC)
در این روش به ازای هر کلاس (شامل ابستراکت کلاس ها نمیشود) و همه پراپرتی هایش(شامل پراپرتی های inherited) یک تیبل جدا ساخته میشود.
Migrations: Rebuild SQLite tables
در مقایسه با سایر دیتابیس ها SQLite دارای محدودیت هایی در تغییرات schema دیتابیس است. برای مثال با حذف کردن یه ستون در یک تیبل که قبلا ساخته شده ، لازم است که کل تیبل حذف شود و دوباره ساخته شود. در این نسخه از EF Core 5
automatic rebuilding
اضافه شده است که تیبل مربوطه را در صورت تغییرات shema به صورت خودکار rebuild میکند.
support for mapping .NET methods to table-valued functions (TVFs)
با استفاده از این ویژگی میتوانید با تعریفی متدی در DbContext یک TVF تعریف شده در دیتابیس رو در Linq Query خود صدا بزنین.
TVF
نوعی از فانکشن های تعریف شده توسط یوزر در sql server است که نتیجه
Select Statement
را به صورت یک تیبل برمیگرداند. مشاهده مثال
Flexible query/update mapping
نگاشت یک Entity Type به ابجکت های متفاوت در دیتابیس، مثلا به یک فانکشن یا یک تیبل یا یک view
برای مثال Entity Type زیر هم به یک تیبل و هم به یک view نگاشت شده است.
```
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder
.Entity<Blog>()
.ToTable("Blogs")
.ToView("BlogsView");
} ```
و به طور پیشتفرض EF Core 5 کوئری (SELECT) را از view انجام میدهد و موارد ابدیت شده رi به table میفرستد. مثال ادامه در پست بعدی ....@fullStackDevs
BY Web Devs
Share with your friend now:
tgoop.com/fullStackDevs/572