Data Annotation Attribute ব্যবহার করে Model Validation

Microsoft Technologies - এন্টিটি ফ্রেমওয়র্ক (Entity Framework) Entity Framework এ Validation এবং Data Annotation |
255
255

Entity Framework এবং ASP.NET Core এ Model Validation একটি গুরুত্বপূর্ণ বিষয়। এটি ব্যবহারকারীর ইনপুটের সঠিকতা নিশ্চিত করতে সাহায্য করে। Data Annotations হল একটি সহজ পদ্ধতি যা আপনাকে মডেল প্রোপার্টির ওপর বিভিন্ন বৈধতা (validation) বিধিনিষেধ আরোপ করতে দেয়। এগুলি এমন অ্যাট্রিবিউট যা মডেল ক্লাসের প্রপার্টির সাথে যুক্ত থাকে এবং যখন ডেটা সেভ বা সাবমিট করা হয়, তখন এগুলি পরীক্ষা করা হয়।

এখানে আমরা দেখব কিভাবে Data Annotation Attribute ব্যবহার করে মডেল ভ্যালিডেশন করা যায়।


প্রধান Data Annotation Attributes

ASP.NET Core বা Entity Framework এ বিভিন্ন Data Annotation অ্যাট্রিবিউট ব্যবহার করা হয়, যেমন:

  • Required
  • StringLength
  • Range
  • RegularExpression
  • EmailAddress
  • Compare
  • DataType
  • Range

প্রতিটি অ্যাট্রিবিউটের মাধ্যমে বিভিন্ন ধরণের ভ্যালিডেশন করা যায়। নিচে বিস্তারিতভাবে আলোচনা করা হলো।


1. Required Attribute

Required অ্যাট্রিবিউটটি ব্যবহার করা হয়, কোনো প্রপার্টি ফাঁকা না থাকা নিশ্চিত করার জন্য। এটি প্রোপার্টির মান অবশ্যই প্রদান করতে হবে।

উদাহরণ:

public class Student
{
    public int Id { get; set; }

    [Required(ErrorMessage = "Name is required")]
    public string Name { get; set; }

    public int Age { get; set; }
}

এখানে, Name প্রপার্টি Required অ্যাট্রিবিউট ব্যবহার করে মার্ক করা হয়েছে। এর মানে, Name ফিল্ডটি ফাঁকা রাখা যাবে না এবং যদি ফাঁকা রাখা হয়, তাহলে কাস্টম মেসেজ "Name is required" দেখানো হবে।


2. StringLength Attribute

StringLength অ্যাট্রিবিউটটি ব্যবহার করে আপনি স্ট্রিং প্রপার্টির সর্বোচ্চ এবং সর্বনিম্ন দৈর্ঘ্য নির্ধারণ করতে পারেন।

উদাহরণ:

public class Student
{
    public int Id { get; set; }

    [StringLength(50, MinimumLength = 2, ErrorMessage = "Name must be between 2 and 50 characters")]
    public string Name { get; set; }

    public int Age { get; set; }
}

এখানে, Name ফিল্ডের দৈর্ঘ্য ২ থেকে ৫০ অক্ষরের মধ্যে থাকতে হবে। এর বাইরে গেলে কাস্টম মেসেজ "Name must be between 2 and 50 characters" দেখানো হবে।


3. Range Attribute

Range অ্যাট্রিবিউটটি ব্যবহার করা হয় একটি প্রপার্টির মান নির্দিষ্ট পরিসরের মধ্যে থাকতে হবে, এমনভাবে সুনির্দিষ্ট করার জন্য। এটি সংখ্যার জন্য বিশেষভাবে কার্যকর।

উদাহরণ:

public class Student
{
    public int Id { get; set; }

    public string Name { get; set; }

    [Range(18, 100, ErrorMessage = "Age must be between 18 and 100")]
    public int Age { get; set; }
}

এখানে, Age প্রপার্টি ১৮ থেকে ১০০ এর মধ্যে থাকতে হবে। এই পরিসরের বাইরে গেলে কাস্টম মেসেজ দেখানো হবে: "Age must be between 18 and 100"।


4. RegularExpression Attribute

RegularExpression অ্যাট্রিবিউটটি একটি নির্দিষ্ট প্যাটার্নে ডেটা যাচাই করার জন্য ব্যবহৃত হয়। এটি সাধারণত ইমেইল বা ফোন নম্বরের মতো নির্দিষ্ট ফরম্যাটের জন্য ব্যবহার করা হয়।

উদাহরণ:

public class Student
{
    public int Id { get; set; }

    [RegularExpression(@"^[a-zA-Z]+$", ErrorMessage = "Name can only contain letters")]
    public string Name { get; set; }

    public int Age { get; set; }
}

এখানে, Name প্রপার্টি শুধুমাত্র অক্ষর (letters) গ্রহণ করবে। অন্য কিছু ইনপুট দিলে কাস্টম মেসেজ "Name can only contain letters" দেখানো হবে।


5. EmailAddress Attribute

EmailAddress অ্যাট্রিবিউটটি ইমেইল ফরম্যাট যাচাই করতে ব্যবহৃত হয়।

উদাহরণ:

public class Student
{
    public int Id { get; set; }

    [EmailAddress(ErrorMessage = "Invalid email address")]
    public string Email { get; set; }

    public int Age { get; set; }
}

এখানে, Email প্রপার্টি শুধুমাত্র সঠিক ইমেইল ফরম্যাটে থাকতে হবে। যদি সঠিক ফরম্যাট না হয়, তবে "Invalid email address" মেসেজ প্রদর্শিত হবে।


6. Compare Attribute

Compare অ্যাট্রিবিউটটি দুটি প্রপার্টির মান তুলনা করতে ব্যবহৃত হয়, যেমন পাসওয়ার্ড এবং কনফার্ম পাসওয়ার্ড।

উদাহরণ:

public class Student
{
    public int Id { get; set; }

    public string Name { get; set; }

    [Required]
    public string Password { get; set; }

    [Required]
    [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
    public string ConfirmPassword { get; set; }
}

এখানে, Password এবং ConfirmPassword দুটি প্রপার্টি তুলনা করা হচ্ছে। যদি তাদের মান একই না হয়, তবে "The password and confirmation password do not match." মেসেজ দেখানো হবে।


7. DataType Attribute

DataType অ্যাট্রিবিউটটি একটি প্রপার্টির জন্য উপযুক্ত ডেটা টাইপ নির্দেশ করতে ব্যবহৃত হয়। এটি যেমন, ফোন নম্বর, ইমেইল, পাসওয়ার্ড ইত্যাদির জন্য সঠিক ফরম্যাট নির্দেশ করতে পারে।

উদাহরণ:

public class Student
{
    public int Id { get; set; }

    [DataType(DataType.EmailAddress)]
    public string Email { get; set; }

    [DataType(DataType.Password)]
    public string Password { get; set; }
}

এখানে, Email এবং Password প্রপার্টির জন্য উপযুক্ত ডেটা টাইপ (ইমেইল এবং পাসওয়ার্ড) নির্ধারণ করা হয়েছে।


Model Validation এর প্রয়োগ

Data Annotation অ্যাট্রিবিউটগুলি Entity Framework বা ASP.NET Core এর মাধ্যমে Model Validation প্রক্রিয়ায় ব্যবহৃত হয়। আপনি যখন একটি মডেল (যেমন Student) তৈরি করেন এবং তার পর ডেটা সাবমিট করেন, তখন এগুলির মাধ্যমে স্বয়ংক্রিয়ভাবে যাচাই করা হয়। যদি কোনো প্রপার্টি ইনভ্যালিড হয়, তবে তা টেমপ্লেট বা কাস্টম মেসেজের মাধ্যমে ব্যবহারকারীকে জানানো হয়।

উদাহরণ: Model Validation এ ব্যবহার

var student = new Student { Name = "", Age = 17 };
var validationResults = new List<ValidationResult>();
var validationContext = new ValidationContext(student, null, null);

bool isValid = Validator.TryValidateObject(student, validationContext, validationResults, true);
if (!isValid)
{
    foreach (var validationResult in validationResults)
    {
        Console.WriteLine(validationResult.ErrorMessage);
    }
}

এখানে, TryValidateObject মেথড ব্যবহার করে মডেলের সব প্রপার্টি যাচাই করা হয়েছে। যদি কোনো ত্রুটি থাকে, তবে validationResults এ তা পাওয়া যাবে এবং ত্রুটি মেসেজ প্রদর্শিত হবে।


উপসংহার

Data Annotation Attribute ব্যবহার করে মডেল ভ্যালিডেশন খুবই সহজ এবং কার্যকরী একটি পদ্ধতি। এটি ডেটাবেসে বা ব্যবহারকারী ইনপুটের সময় সঠিকতা নিশ্চিত করতে সাহায্য করে। সঠিকভাবে ফিল্ড ভ্যালিডেশন প্রয়োগ করার মাধ্যমে আপনি অ্যাপ্লিকেশনটির ডেটা নিরাপত্তা এবং ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে পারেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion