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، مما يسهل التحكم في صحة البيانات والتعامل مع البنية الأساسية لقواعد البيانات بشكل منظم.

تعليقات

المشاركات الشائعة من هذه المدونة

HTML - Text Formatting تنسيقات النص

1.1 SQL Introduction

Entity Framework - مقدمة عن Entity Framework