چگونه میتوانیم نام ستون یک Table را در Database در روش کدفرست تغییر بدم ؟ برای تغییر نام ستون Table ها در روش Code First چه روش های موجود دارد و بهتر است از چه روشی استفاده کنم ؟
سلام دوستان ، آرزو ابراهیمی هستم برنامه نویس وب ، با یک مقاله آموزشی دیگر از مجموعه مقالات اموزش core mvc سایت میزفا در خدمت شما عزیزان هستم.
سرفصلهای پست
تغییر نام ستون جداول دیتابیس SQL Server دو روش در EF Core
جهت تغییر نام ستون جداول در دیتابیس اسکیوال سرور میتوانیم از دو روش استفاده کنیم که در ادامهی این مقاله آموزشی این دو روش را به صورت عملی باهم بررسی خواهیم کرد پس با این مقاله همراه باشید.
تغییر نام ستون Table به روش Data Annotation Attributes
برای تغییر نام ستون جدول میتوانیم از اتریبیوت [Column()]
استفاده نماییم. در جلسه گذشته به شما نحوهی تغییر نام جدول دیتابیس در روش کدفرست را آموزش دادم پروژهی جلسهی گذشته را باز کنید ، اگر یادتان باشد نام جدول Students را به StudentMaster تغییر دادیم حالا میخواهیم نام ستون های Name و Family را به FirstName و LastName تغییر دهیم ، برای این کار ابتدا به سراغ کلاس Student میرویم و سپس بالای سر پراپرتی های Name و Family که باعث ایجاد ستون های Name و Family در جدول StudentMaster میشوند از اتریبیوت [Column()]
استفاده مینماییم و سپس نام جدید ستون را به اتریبیوت [Column()]
ارسال میکنم همانند کد زیر
using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Threading.Tasks; namespace EFCore_C05.Models { [Table("StudentMaster")] public class Student { public string StudentId { get; set; } public string NationalCode { get; set; } [Column("FirstName")] public string Name { get; set; } [Column("LastName")] public string Family { get; set; } public DateTime BirthDate { get; set; } } }
حالا کافیه دیتابیس را آپدیت کنیم بعد از آپدیت دیتابیس نام ستون های Name و Family به FirstName و LastName تغییر پیدا خواهد کرد.
چنانچه با نحوه آپدیت دیتابیس در asp.net core آشنایی ندارید پیشنهاد میکنم مقاله آموزش آپدیت دیتابیس در روش CodeFirst را مطالعه نمایید.
تغییر نام Table دیتابیس به روش Fluent API
با استفاده از روش Fluent API که در مقاله آموزشی پیکربندی کلاس های Domain در Code First با آن آشنا شدید هم میتوانید نام ستون جدول را تغییر دهید.
ابتدا باید متد OnModelCreating را در کلاس Override ، StudentDBContext کنید سپس داخل این متد از کدهای زیر استفاده نمایید.
builder.Entity<Student>().Property(b => b.Name).HasColumnName("FirstName"); builder.Entity<Student>().Property(b => b.Family).HasColumnName("LastName");
پس متد OnModelCreating پس از تغییر به صورت زیر خواهد شد.
protected override void OnModelCreating(ModelBuilder builder) { base.OnModelCreating(builder); builder.Entity<Student>().ToTable("StudentMaster"); builder.Entity<Student>().Property(b => b.Name).HasColumnName("FirstName"); builder.Entity<Student>().Property(b => b.Family).HasColumnName("LastName"); }
در کدهای بالا با استفاده از متد Property()
، آن پراپرتی که میخواهیم نامش در جدول دیتابیس تغییر پیدا کند را انتخاب کردیم سپس از متد HasColumnName()
استفاده کردیم و نام جدید ستون را به عنوان پارامتر به این متد ارسال کردیم.
سوالی داشید حتما در بخش نظرات بپرسید پاسخگوی شما خواهم بود.😊