معرفی کامل کلاس های Metadata Model
جلسات دوره
مهدی عباسی
مهدی عباسی هستم، مسلط به حداقل ۲۰ زبان مطرح برنامه نویسی به صورت پیشرفته، مدیر عامل شرکت آریا نرم افزار و بنیانگذار آکادمی درسمن، مسلط به تدریس دروس تخصصی کاردانی و کارشناسی کامپیوتر، پایگاه داده ها، برنامه نویسی پیشرفته، مبانی برنامه نویسی، مباحث ویژه طراحی وب و .... مشاهده رزومه
معرفی کامل کلاسهای Metadata Model:
در جلسه گذشته کار روی دیتابیس را به صورت database first انجام دادیم. گفتیم که چگونه دیتابیس ایجاد کنیم و در آن برنامه بنویسیم، از دیتابیس مدل بسازیم و چطور کنترلی را طراحی کنیم که بتوانیم روی آن مدیریت داشته باشیم به این معنی که بتوانیم عملیات درج، حذف، ویرایش و نمایش اطلاعات را انجام دهیم.
در جلسات قبل attributeهای Data Annotation مانند Disply یا Required را در کلاس T_User برای فیلدهای این جدول اضافه کردیم. اما اگر پایگاه داده را تغییر دهیم و نیاز داشته باشیم یک کلاس مدل ایجاد کنیم، تمام ویژگیهایی را که برای کلاس مدل اعمال کردهایم از بین میروند. در واقع ما نمیتوانیم در کلاسهایی که مدلشان از طریق دیتابیس ساخته شده، تغییری بدهیم. دو روش برای اینکه بتوانیم attributeهایی به فیلدهای خود اضافه کنیم وجود دارد :
1. استفاده از کلاسهای Metadata Model
2. استفاده از کلاسهای view model
نکته: هر زمان از روش database first استفاده کردید بهترین راه استفاده از روش Metadata Model است. اما اگر از روش code first استفاده کردید از روش view model استفاده کنید.
ابتدا یک پروژه جدید ایجاد میکنیم. یک controller به نام User و یک action به نام index و view به نام index ایجاد میکنیم. یک دیتابیس به نام dbTest و یک جدول به نام T_User ایجاد میکنیم. روش ساخت دیتابیس را در جلسه گذشته توضیح دادیم.
به ازای هر جدول در دیتابیس باید یک مدل در برنامه ایجاد کنیم. برای اضافه کردن مدل به روش زیر عمل میکنیم. از روش database first استفاده میکنیم.
در این قسمت مشخص می کنیم که مدل از روی دیتابیس ساخته شود.
برای اتصال به دیتابیس گزینه New Connection را انتخاب میکنیم و از پنجره باز شده Microsoft SQL Server را انتخاب میکنیم.
در این قسمت ابتدا نام سرور را در قسمت Server Name قرار میدهیم و در بخش دوم نام دیتابیس خود را انتخاب می کنیم. برای اطمینان از اتصال به دیتابیس میتوانید روی گزینه Test Connection کلیک کنید و سپس دکمه ok را بزنید.
در این قسمت نام جداول خود را انتخاب کنید و گزینه pluralize را از حالت انتخاب خارج کنید و سپس finish را بزنید.
برای اضافه کردن کلاسهای Meta data، داخل پوشه Models یک پوشه با نام MetaDateModels ایجاد میکنیم و در این پوشه کلاسی با نام دلخواه خود ایجاد میکنیم. در اینجا نام کلاس ما UserMetaData است و بعد تمام فیلدهای مربوط به کلاسمان را در کلاسی که ایجاد کردهایم، قرار میدهیم و تمام تغییراتی را که میخواهیم در این کلاس انجام میدهیم مانند DataAnnotationها.
برای اتصال این دو کلاس پایین کلاس UserMetaData یک کلاس از نوع کلاس اصلی ایجاد میکنیم و ویژگیایی که در تصویر زیر مشاهده میکنید را مینویسیم:
کلاسی که از روی مدل ساخته شده از جنس partial است، یعنی میتوانیم داخل یک فایل دیگر کلاسی داشته باشیم که ادامه کلاس اصلی باشد. یا به عبارتی قسمتی از کلاس را در کلاس دیگری قرار میدهیم. علاوه براین در mvc راهی وجود دارد که ما بتوانیم یک کلاس را مکمل یا کامل کننده یک کلاس دیگر رقم بزنیم. که به این کلاسها، کلاسهای meta data میگویند.
در واقع میتوانیم یک کلاس متادیتا اضافه کنیم که حاوی ویژگیها باشد. وقتی کلاس مدل را به کلاس متادیتا مرتبط میکنیم، این ویژگیها روی مدل اعمال میشوند.
در جلسات گذشته controllerهایی که ایجاد میکردیم از نوع خالی بودند و action و viewهای مربوط به آن را خودمان ایجاد میکردیم و برنامه های مربوط به واکشی اطلاعات، درج، حذف و ویرایش را نوشتیم. اگر در برنامه مدلهایی داشتیم ما می توانیم controllerهایی ایجاد کنیم که همه viewها و actionها را خودش ایجاد کند.
در قسمت Model class مشخص میکنیم که براساس کدام مدل میخواهیم controller ایجاد کنیم. و در قسمت بعد نام کلاس context که مربوط به دیتابیس را انتخاب می کنیم و در انتها نام controller را مشخص می کنیم و Add را میزنیم.
امیدواریم که این آموزش، برای شما دوستان درسمنی عزیز مفید باشد، درصورت سوال و یا مشکل می توانید به انجمن برنامه نویسان سی شارپ مراجعه کنید. پیشنهادات و انتقادات خود را در بخش نظرات برای ما ارسال کنید.
امید آنکه بیش از پیش موفق و مؤید باشید.
نظر شما در تصمیم دیگران اثرگذار است.
لطفا برای همراهان درسمن و بهتر شدن دوره نظر خود را بنویسید.