آموزش ASP.NET Core MVCآموزش طراحی سایت

MaxLength Attribute – محدود کردن طول داده

آشنایی با اتریبیوت MaxLength در روش Code First

اتریبیوت MaxLength در EF Core چه کاربردی دارد؟ چگونه می‌توانیم طول داده های مندرج در یک جدول را در روش کدفرست (CodeFirst) محدود کنیم تا از یک حدی که خودمات تعیین کرده ایم بیشتر نباشد؟

سلام ، آرزو ابراهیمی هستم برنامه نویس NET. و با یک مقاله آموزشی دیگر از فصل  اموزش Entity Framework core از دوره اموزش asp.net core 3 در خدمت شما همراهان همیشگی میزفا هستم.

محدود کردن طول Property ها در روش Code First در EF Core

برای محدود کردن طول داده ها در روش CodeFirst می‌توانیم از دو روش استفاده کنیم که در ادامه این مقاله آموزشی با این دو روش آشنا خواهید شد.

محدود کردن طول داده های جدول به روش Data Annotation Attributes

در این روش جهت محدود کردن طول داده‌ی یک ستون از جدول از اتریبیوت [MaxLength()] بالای سر آن پراپرتی که می‌خواهیم طولش محدود شود ، استفاده می‌کنیم.

حالا به سراغ پروژه جلسه آموزشی گذشته میرویم این پروژه را باز کنید اگر یادتان باشد در جلسه آموزشی گذشته با اتریبیوت Required  جهت اجباری کردن یک ستون از جدول آشنا شدیم و حالا می‌خواهیم با استفاده از اتریبیوت MaxLength طول پراپرتی Name و Family را محدود کنیم.

پس بالای سر پراپرتی Name و Family از اتریبیوت MaxLength استفاده می‌کنم و چون نمیخواهم که طول کاراکترهای این دوتا پراپرتی از 50 کاراکتر بیشتر باشد عدد 50 را به اتریبیوت MaxLength ارسال میکنم، مطابق با کد زیر :

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Threading.Tasks;

namespace EFCore_C05.Models
{
    [Table("StudentMaster")]
    public class Student
    {
        [Key]
        public string StudentId { get; set; }

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

        [Column("FirstName")]
        [MaxLength(50)]
        public string Name { get; set; }

        [Column("LastName"),MaxLength(50)]
        public string Family { get; set; }
        public DateTime BirthDate { get; set; }
    }
}

نکته : از چندین اتریبیوت می تونید در یک سطر استفاده کنید مثلا به این صورت  [Column(“LastName”),MaxLength(50)] فقط باید اتریبیوت ها با علامت , از هم جدا شوند.

حالا فقط باید دیتابیس را آپدیت کنیم بعد از آپدیت دیتابیس ، طول پراپرتی Name و Family به حداکثر 50 کاراکتر محدود خواهد شد.
چنانچه با نحوه آپدیت دیتابیس در asp.net core آشنایی ندارید پیشنهاد میکنم مقاله آموزش  آپدیت دیتابیس در EF Core را حتما مطالعه نمایید.

محدود کردن طول داده های جدول به روش Fluent API

با استفاده از روش Fluent API که در مقاله آموزشی پیکربندی کلاس های Domain در Code First با آن آشنا شدید هم می‌توانید طول داده ها را در روش CodeFirst محدود کنید.

ابتدا باید متد OnModelCreating را در کلاس Override ، StudentDBContext کنید سپس داخل این متد از کدهای زیر استفاده نمایید.

builder.Entity<Student>().Property(b => b.Name).HasColumnName("FirstName").HasMaxLength(50);
builder.Entity<Student>().Property(b => b.Family).HasColumnName("LastName").HasMaxLength(50);

در کد بالا جهت محدود کردن طول پراپرتی های Name و Family  از متد HasMaxLength() استفاده کرده و عدد ۵۰ را به این متد ارسال کرده ایم چون نمیخواهیم که طول این دوتا Property از 50 تا بیشتر باشد.

پس متد OnModelCreating پس از تغییر به صورت زیر خواهد شد.

protected override void OnModelCreating(ModelBuilder builder)
{
   base.OnModelCreating(builder);
   builder.Entity<Student>().ToTable("StudentMaster").HasKey(b => b.StudentId);
   builder.Entity<Student>().Property(b => b.Name).HasColumnName("FirstName").HasMaxLength(50);
   builder.Entity<Student>().Property(b => b.Family).HasColumnName("LastName").HasMaxLength(50);
   builder.Entity<Student>().Property(b => b.NationalCode).IsRequired();
}

از اینکه دوره آموزش asp.net core را دنبال می‌کنید، سپاسگزارم و امیدوارم براتون مفید بوده باشه. اگر سوال پیشنهاد و انتقادی داشتید خوشحال میشم که باهام در میان بگذارید و حتما در اولین فرصت بهتون پاسخ میدم.😊

برچسب ها

آرزو ابراهیمی

بیش از 6 سال است که زمینه طراحی و توسعه سایت فعالیت می‌کنم، طراح و برنامه نویس انواع سامانه‌های تخصصی پزشکی، مناقصات، فروشگاهی و ... بودم و هستم و هدفم در سایت میزفا ارائه اطلاعات بروز و ناب در زمینه طراحی سایت است. تا از این طریق بتونم تجربیات و دانسته های خودم را با تمامی علاقمندان به مباحث طراحی سایت به اشتراک بزارم .

نوشته های مشابه

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا
سایت خود را در گوگل مدیریت کنید + ۱۵ ساعت فیلم آموزشیجزئیات بیشتر اینجا کلیک کنید
بستن
با موفقیت ثبت شد، میزفا از شما برای عضویت در خبرنامه هفتگی تشکر میکند.

عضویت در خبرنامه هفتگی برای دریافت:

  • فیلم و مقاله رایگان سئو
  • آموزش‌های UX ، GA و GTM
  • مقاله های تخصصی ASP.NET Core
  • اطلاع رسانی از محصولات
ترک میزفا خوب نیست!
دوره سئو، رایگان شد.
فرصتی رایگان برای یادگیری
کاراکتر اشاره گر
دوره سئو، رایگان شد.
فرصتی رایگان برای یادگیری
کاراکتر اشاره گر