Чӣ гуна муносибатҳо дар доираи муҳити EF Core мавҷуданд?
sobes.tech AI
Ҷавоб аз AI
Дар within системаи Entity Framework Core се сеҳосо три асосии усулҳо (approach) барои кор бо схемаи базаи додаҳо:
-
Database First: Схемаи базаи додаҳо аллакай вуҷуд дорад, ва EF Core синтез мекунад синфҳои модел (entities) ва
DbContextбар асоси ин схема.- Фоидаҳо: оғоз кардани зуд бо базаи додаҳои тайёр, схема пурра назорат мешавад аз ҷониби база.
- Норасоиҳо: Тағйирот дар базаи додаҳо талаб мекунад барқарорсозии коди нав, ки метавонад коди фармоишӣ-адаптшударо нависад.
// Намунаи фармон барои синтез аз базаи додаҳои мавҷуда // Scaffold-DbContext "Server=(localdb)\\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -
Code First: Моделҳоро (entities) ва
DbContext-ро дар C# муайян мекунед. EF Core схемаи базаи додаҳоро бар асоси ин муайянҳо бо ёрии миграцияҳо месозад ё навсозӣ мекунад.- Фоидаҳо: Назорати пурра бар коди моделҳо, ҳамгироӣ бо коди барнома, истифодаи миграцияҳо барои идоракунии тағйирот.
- Норасоиҳо: Талаб мекунад идоракунии миграцияҳо, тағйирот дар схема ҳамеша аз тағйирот дар коди оғоз меёбад.
// Намунаи синфи модел дар усули Code First public class Product { public int Id { get; set; } public string Name { get; set; } public decimal Price { get; set; } } -
Model First: Ин усул, ҳарчанд дар версияҳои кӯҳнаи EF (пеш аз Core) вуҷуд дошт, дар EF Core натиҷан ва мустақилона дар маънои якхела бо Database First ё Code First нест. Дар асл, Model First дар EF Core ба навиштани моделҳо дар коди (монанди Code First) ва пас аз он генератсияи базаи додаҳо бар асоси онҳо маъно дорад. Вай як дизайнер визуалӣ барои моделҳо надорад, ки дар EF 6 буд, бинобар ин, дар контексти EF Core онро ҳамчун ҳолати махсуси Code First мешуморанд, ки дар он шумо моделро ба дастӣ тасвир мекунед, бе истифодаи базаи додаҳои тайёр.
Хусусиятҳои асосии усулҳо:
| Усул | Оғоз | Идоракунии схемаи базаи додаҳо | Асбобҳо барои тағйирот |
|---|---|---|---|
| Database First | Базаи додаҳои мавҷуда | Дар базаи додаҳо дастӣ | Scaffold-DbContext |
| Code First | Синфҳои модел ва DbContext дар C# |
Миграцияҳои EF Core | Add-Migration, Update-Database |
| Model First (дар контексти EF Core) | Синфҳои модел ва DbContext дар C# (беҳудаи базаи додаҳо) |
Миграцияҳои EF Core ё генератсия дар оғоз | Add-Migration, Update-Database |
Интихоби усул вобаста ба шароити ибтидоии лоиҳа ва афзалиятҳои гурӯҳ мебошад. Code First дар лоиҳаҳои нав бо EF Core бештар истифода мешавад, бо сабаби чандирӣ ва ҳамгироӣ бо раванди таҳия.