• بررسی Scaffolding و Entity Framework در پروژه های ASP.NET MVC Core
بررسی Scaffolding و Entity Framework در پروژه های ASP.NET MVC Core
1395/03/10 - 11:10:53 // MVC 5 & 6 // 2 نظر // 4848 بازدید

یکی از الگوهای بسیار کاربردی برای یادگیری و یا صرفه جویی در وقت برنامه نویسان CRUD ها هستند. از طریق ایجاد یک CRUD ، دیگر برنامه نویسان میتوانند حداقل وضعیت یک Insert/Update/Delete/Select ساده را روشن شده طلقی کنند و به آسانی از آن استفاده کنند. برای ایجاد یک CRUD روشهای زیادی وجود دارد و یکی از ساده ترین آنها اختیار دادن به Visual Studio و ایجاد 80% اجزای پروژه توسط قابلیتی به نام Scaffolding می باشد .

بسمه تعالی

بررسی Scaffolding و Entity Framework در پروژه های ASP.NET MVC Core

یکی از الگوهای بسیار کاربردی برای یادگیری و یا صرفه جویی در وقت برنامه نویسان CRUD ها هستند. از طریق ایجاد یک CRUD ، دیگر برنامه نویسان میتوانند حداقل وضعیت یک Insert/Update/Delete/Select ساده را روشن شده طلقی کنند و به آسانی از آن استفاده کنند. برای ایجاد یک CRUD روشهای زیادی وجود دارد و یکی از ساده ترین آنها اختیار دادن به Visual Studio و ایجاد 80% اجزای پروژه توسط قابلیتی به نام Scaffolding می باشد .

در این دست پروژه ها کافی است شما وضعیت Model و نام DataBase Server و ... را مشخص کنید و اجازه دهید باقی مراحل توسط خود Visual Studio انجام شود . در این مقاله قصد داریم از قابلیت Scaffolding در MVC Core استفاده کنیم.

خوب در ابتدا یک پروژه جدید ایجاد میکنیم.

در مرحله بعد نوع پروژه را تایین کنید .

خوب پس از ایجاد پروژه باید تغییراتی در آن داشته باشیم ، ولی قبل از آن اجازه دهید DataBase را ایجاد کنیم تا تصمیم گیریهای Model و ... هم ساده تر شود.

برای ایجاد دیتابیس یک Scriptبه نام StudentQuery به همراه مقاله درون فولدر Sourceوجود دارد که باید آنرا روی Server اجرا ودیتابیس را ایجاد نمایید.

خوب حالا دیتابیس با 3 رکورد فرضی برای ما ایجاد گردیده است .

مرحله بعدی تغییرات appsettings.Json می باشد . در این فایل Connection String سیستم را قرار خواهیم داد. در مقالات Core 1 به اندازه کافی درباره این فایل و تنظیماتش صحبت شده ، لذا در اینجا فقط یک تصویر از آن قرار میدهم و ضمنن در سورس پروژه هم موجود است .

برای ایجاد Model باید مطابق جدولی که در دیتابیس داشتیم ، یک کلاس ایجاد کنیم . یک فولدر Model در پروژه ایجاد کنید و یک کلاس به نام StudentMasters درون آن ایجاد نمایید.

خوب حالا باید DbContext ایجاد گردد . برای اینکار باز یک کلاس جدید در فولدر Model ایجاد میکنیم و نام آنرا StudentMastersAppContext میگذاریم.

خوب حالا باید همه چیز را به دست Scafollding بسپاریم و اجازه بدهیم Controller و View را برای ما ایجاد نماید . برای اینک کار روی فولدر Controller یک کلیک راست کنید و مطابق تصویر زیر از منوی ADD آیتم Scaffolding را انتخاب نمایید.

مرحله بعدی انتخاب نوع Scaffolding است که مطابق زیر عمل کنید .

خوب حالا یک صفحه مشابه زیر خواهیم داشت که باید Model و Context را به آن معرفی کنیم.

و با زدن Add ، View ها و Controller لازمه ایجاد خواهد شد . با Run کردن پروژه وضعیت زیر را خواهم داشت .

حال با زدن Create میتوانم یک رکورد جدید ایجاد نمایم و .....

اگر به بدنه Controller نگاهی بیندازیم ، خواهیم دید که همه متدها را به درستی ایجاد و میتوان از آنها استفاده نمود.

ضمنن کلیه Viewها بر اساس Tag Helperها ایجاد نموده است که در تصویر زیر مشهود است .

برای دسترسی بهتر به لیست دانشجویان در Layout یک منوی اضافی به شکل زیر ایجاد میکنیم.

حال با کلیک بر روی این لینک به لیست دانشجویان دسترسی خواهیم داشت.

دانلود سورس پروژه

علی کلاهدوزان
معرفی نویسنده : علی کلاهدوزان

سلام بر دوستان ،
شاید رایج است به عنوان پروفایل کاربر ، چند خطی راجع به خودم بنویسم ، ولی وضعیت کاری و سوابق من با یک جستجوی ساده در گوگل مشخص خواهد شد ، لذا سرتان را با مطالب بی مورد به درد نیاورم بهتر است . اگر نکته خاصی لازم بود بدانید در قسمت "ایلیا سافت در یک نگاه" به احتمال زیاد یافت خواهد شد . جزئیات بیشتر را سوال کنید ، آدرس ایمیل Ali@Kolahdoozan.com همیشه جوابگوی شماست .امیدوارم از مطالب سایت استفاده کرده باشید . شاد و پیروز باشید .

امتیاز به مطلب
           
نظرات کاربران
  • ناشناس
    1395/03/11 - 06:04:13

    0
    0
    سلام و تشکر بابت مطلبتون آیا میشه زمان زمان scaffold علاوه بر کارهای پیش فرضی که انجام میده کارای دیگه هم انجام بده؟ مثلا یک کلاس داخل یک پروژه solution رو به داخل لایه ui همون solution کپی کنه و مثلا به اسمش یه چیزی اضافه کنه؟ مثلا داخل یک solution دو تا پروژه a,b داریم، زمان scaffold از یک مسیر داخل پروژه a یک کلاسی رو کپی و به اسمش یه چیزی اضافه کنه و اون رو داخل یه مسیر پروژه b قرار بده؟
  • حمید
    1399/12/25 - 05:48:52

    0
    0
    سلام و خسته نباشید خدمت همکاران عزیز از scaffolding هم توی معماری پیازی میشه استفاده کرد؟ اگرامکان داره یک مثال بیارید باتشکر
ارسال نظر