Notice: file_put_contents(): Write of 18631 bytes failed with errno=28 No space left on device in /var/www/tgoop/post.php on line 50

Warning: file_put_contents(): Only 4096 of 22727 bytes written, possibly out of free disk space in /var/www/tgoop/post.php on line 50
Web Devs@fullStackDevs P.479
FULLSTACKDEVS Telegram 479
#Keyless_Entity

🔴این پست شامل دو پیام میباشد

✳️Keyless Entity Types

🔸این ویژگی از EF Core 2.1 با نام query type به Ef Core اضافه شد که در Ef Core 3.0 به keyless entity type تغییر نام پیدا کرد است.
از این رو EF Core علاوه بر Entity های معمولی، Model میتواند شامل Entity هایی باشد که کلید اصلی ندارند.
▪️یک keyless Entity میتواند قالب یا مدل خروجی یک کوئری،procedure که از نتیجه Join چند Table در دیتابیس به وجود می اید باشد.
علاوه بر این یک Keyless Entity اکثر ویژگی های یک Entity که شامل inheritance mapping و navigation property و ... است، پشتیبانی میکند.
همچنین میتواند یک Keyless Entity Type را به یک آبجکت نظیر Table یا View در دیتابیس Map کرد.این کار را با کمک fluent API یا data annotations میتوانید انجام دهید.

🔸با همه این ویژگی های مشترک اما یک Keyless Entity تفاوتهایی نسبت به یک Entity دارد که میتوان به موارد ذیل اشاره کرد :
▫️نمیواند کلید اصلی داشته باشند
▫️تغییرات آنها اصلا توسط Change Tracker ردیابی نمیشود پس درنتیجه هرگز امکان درج و حذف و آبدیت انها در DbContext را ندارید.
▫️برای آنها قرار دادی (Convention) وجود ندارد یعنی کلیه Convention هایی که به صورت پیشفرض برای Entity ها در Ef Core وجود دارد برای یک keyless Entity وجود ندارد.
▫️تنها از زیر مجموعه ای از navigation mapping پشتیبانی میکند که به طور خاص دارای شرایط زیر باشد :

🔹خروجی یک navigation mapping در انتهای رابطه به مانند یک principal Entity نباشد..
🔹اگر یکی از پراپرتی ها یک keyless Entity یک Complex type باشد، باید به ازای تک تک پراپرتی های آن Cpmplex type خروجی همنام متناظر داشته باشید.
🔹در هنگام navigation mapping یک keyless Entity فقط میتواند شامل reference navigation property باشد.
🔹انیتی ها نمیتوانند یک keyless Entity را به عنوان navigation property در برداشته باشند.
▫️در هنگام Configuration باید به صورت .HasNoKey() تنظیم شوند.
▫️همچنین ممکن است به یک defining query مپ شود.
🔻یک defining query کوئری است که درون Model تعریف شده و به عنوان Data Source برای keyless Entity عمل میکند.

✳️ موارد استفاده از یک keyless Entity

▪️به عنوان یک نوع بازگشتی برای raw SQL query بکار برده شود.
▪️به یک View در دیتابیس Map شود که هیچ کلید اصلی نیز ندارد.
▪️به یک جدول در دیتابیس Map شود که هیچ کلید اصلی ندارد.
▪️به کوئری های تعریف شده در مدل (defining query) مپ شود.

✳️ نحوه مپ کردن یک Keyless Entity به آبجکنی در دیتابیس

🔸با استفاده از متد های ToTable و ToView در fluent API میتوانید اینکار را انجام دهید.
▪️از دیدگاه Ef Core دیتابیس Object مشخص شده در متد ToView یک view در دیتابیس است و به یک view نمیتوان چیزی را ADD ، DELETE،UPDATE کرد. البته این به این معنی نیست که لزوما آبجکت سمت دیتابیس باید یک View باشد . میتوانید از یک Table استفاده کنید اما این Table به صورت ReadOnly رفتار میکند.

🔻نکته : زمانی که از متد ToView استفاده میکنید ویو مشخص شده باید در دیتابیس وجود داشته باشد و همچنین به صورت خودکار در هنگام مایگریشن و update Database ساخته نخواهد شد.

@FullStackDevs



tgoop.com/fullStackDevs/479
Create:
Last Update:

#Keyless_Entity

🔴این پست شامل دو پیام میباشد

✳️Keyless Entity Types

🔸این ویژگی از EF Core 2.1 با نام query type به Ef Core اضافه شد که در Ef Core 3.0 به keyless entity type تغییر نام پیدا کرد است.
از این رو EF Core علاوه بر Entity های معمولی، Model میتواند شامل Entity هایی باشد که کلید اصلی ندارند.
▪️یک keyless Entity میتواند قالب یا مدل خروجی یک کوئری،procedure که از نتیجه Join چند Table در دیتابیس به وجود می اید باشد.
علاوه بر این یک Keyless Entity اکثر ویژگی های یک Entity که شامل inheritance mapping و navigation property و ... است، پشتیبانی میکند.
همچنین میتواند یک Keyless Entity Type را به یک آبجکت نظیر Table یا View در دیتابیس Map کرد.این کار را با کمک fluent API یا data annotations میتوانید انجام دهید.

🔸با همه این ویژگی های مشترک اما یک Keyless Entity تفاوتهایی نسبت به یک Entity دارد که میتوان به موارد ذیل اشاره کرد :
▫️نمیواند کلید اصلی داشته باشند
▫️تغییرات آنها اصلا توسط Change Tracker ردیابی نمیشود پس درنتیجه هرگز امکان درج و حذف و آبدیت انها در DbContext را ندارید.
▫️برای آنها قرار دادی (Convention) وجود ندارد یعنی کلیه Convention هایی که به صورت پیشفرض برای Entity ها در Ef Core وجود دارد برای یک keyless Entity وجود ندارد.
▫️تنها از زیر مجموعه ای از navigation mapping پشتیبانی میکند که به طور خاص دارای شرایط زیر باشد :

🔹خروجی یک navigation mapping در انتهای رابطه به مانند یک principal Entity نباشد..
🔹اگر یکی از پراپرتی ها یک keyless Entity یک Complex type باشد، باید به ازای تک تک پراپرتی های آن Cpmplex type خروجی همنام متناظر داشته باشید.
🔹در هنگام navigation mapping یک keyless Entity فقط میتواند شامل reference navigation property باشد.
🔹انیتی ها نمیتوانند یک keyless Entity را به عنوان navigation property در برداشته باشند.
▫️در هنگام Configuration باید به صورت .HasNoKey() تنظیم شوند.
▫️همچنین ممکن است به یک defining query مپ شود.
🔻یک defining query کوئری است که درون Model تعریف شده و به عنوان Data Source برای keyless Entity عمل میکند.

✳️ موارد استفاده از یک keyless Entity

▪️به عنوان یک نوع بازگشتی برای raw SQL query بکار برده شود.
▪️به یک View در دیتابیس Map شود که هیچ کلید اصلی نیز ندارد.
▪️به یک جدول در دیتابیس Map شود که هیچ کلید اصلی ندارد.
▪️به کوئری های تعریف شده در مدل (defining query) مپ شود.

✳️ نحوه مپ کردن یک Keyless Entity به آبجکنی در دیتابیس

🔸با استفاده از متد های ToTable و ToView در fluent API میتوانید اینکار را انجام دهید.
▪️از دیدگاه Ef Core دیتابیس Object مشخص شده در متد ToView یک view در دیتابیس است و به یک view نمیتوان چیزی را ADD ، DELETE،UPDATE کرد. البته این به این معنی نیست که لزوما آبجکت سمت دیتابیس باید یک View باشد . میتوانید از یک Table استفاده کنید اما این Table به صورت ReadOnly رفتار میکند.

🔻نکته : زمانی که از متد ToView استفاده میکنید ویو مشخص شده باید در دیتابیس وجود داشته باشد و همچنین به صورت خودکار در هنگام مایگریشن و update Database ساخته نخواهد شد.

@FullStackDevs

BY Web Devs


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

View MORE
Open in Telegram


Telegram News

Date: |

Hui said the time period and nature of some offences “overlapped” and thus their prison terms could be served concurrently. The judge ordered Ng to be jailed for a total of six years and six months. Polls The creator of the channel becomes its administrator by default. If you need help managing your channel, you can add more administrators from your subscriber base. You can provide each admin with limited or full rights to manage the channel. For example, you can allow an administrator to publish and edit content while withholding the right to add new subscribers. End-to-end encryption is an important feature in messaging, as it's the first step in protecting users from surveillance. To upload a logo, click the Menu icon and select “Manage Channel.” In a new window, hit the Camera icon.
from us


Telegram Web Devs
FROM American