Entity Framework - Data Annotations [Key]، [Required]، [MaxLength]، [StringLength].
8.5 Entity Framework - شرح [Key]، [Required]، [MaxLength]، [StringLength]
في هذا الدرس سنتعرف على أهم وأشهر سمات Data Annotations التي تستخدم مع الكيانات (Entities) في Entity Framework Core، وهي: [Key]، [Required]، [MaxLength]، و[StringLength].
🔹 [Key] - تعريف المفتاح الأساسي
تُستخدم خاصية [Key] لتحديد أن هذا الحقل هو المفتاح الأساسي (Primary Key) للجدول في قاعدة البيانات.
using System.ComponentModel.DataAnnotations;
public class Product
{
[Key]
public int ProductId { get; set; }
public string Name { get; set; }
}
في هذا المثال، خاصية ProductId ستكون المفتاح الأساسي للجدول.
🔹 [Required] - جعل الخاصية إلزامية
تُستخدم خاصية [Required] لجعل قيمة الخاصية إلزامية (أي لا تقبل القيم الفارغة Null).
using System.ComponentModel.DataAnnotations;
public class Product
{
[Key]
public int Id { get; set; }
[Required]
public string Name { get; set; }
}
بدون تحديد [Required]، يمكن أن يسمح EF Core بحفظ سجلات بدون اسم.
🔹 [MaxLength] - تحديد الطول الأقصى للنص
تُستخدم خاصية [MaxLength] لتحديد أقصى عدد من الأحرف يمكن تخزينه في العمود المرتبط بهذه الخاصية.
using System.ComponentModel.DataAnnotations;
public class Product
{
[Key]
public int Id { get; set; }
[MaxLength(100)]
public string Name { get; set; }
}
في هذا المثال، لن يسمح العمود المرتبط بالخاصية Name بتخزين أكثر من 100 حرف.
🔹 [StringLength] - تحديد الطول الأدنى والأقصى للنص
تُستخدم خاصية [StringLength] لتحديد كل من الحد الأدنى والحد الأقصى لطول النص.
using System.ComponentModel.DataAnnotations;
public class Product
{
[Key]
public int Id { get; set; }
[StringLength(100, MinimumLength = 5)]
public string Name { get; set; }
}
هنا يجب أن يكون طول النص المخزن في Name بين 5 و100 حرف.
🔹 مقارنة سريعة بين [MaxLength] و[StringLength]
| MaxLength | StringLength |
|---|---|
| يحدد الحد الأقصى فقط | يحدد الحد الأدنى والحد الأقصى معًا |
| يؤثر على قاعدة البيانات فقط | يؤثر على التحقق من صحة البيانات (Validation) وأحيانًا على قاعدة البيانات |
🔹 الخلاصة
توفر لك سمات [Key] و[Required] و[MaxLength] و[StringLength] أدوات سهلة وسريعة لضبط خصائص الكيانات في Entity Framework Core، مما يسهل التحكم في صحة البيانات والتعامل مع البنية الأساسية لقواعد البيانات بشكل منظم.
تعليقات
إرسال تعليق