پیاده سازی روش Database First در MVC
جمعه 18 دی 1394برای اینکه توسط Entity Framework به برنامه خود مدل اضافه کنیم چندین روش وجود دارد ، در این مقاله قصد داریم که روش Database First را به صورت مرحله به مرحله آموزش دهیم .
EntityFramwork یک ORM قدرتمند است که منابع داده رابطه ای شما را تبدیل به اشیا قابل فهم در محیط .NET می کند .استفاده از EntityFramwork باعث می شود که بدون عملیات مستقیم در داخل دیتا بیس در داخل برنامه خود با جداول و رکوردها کار کنید .اگر سابقه برنامه نویسی داشته باشید حتما ADO.NET را می شناسید ، می توان گفت که EntityFramwork چند نسل بعد از ADO است ولی به طبع از آن پیشرفته تر و راحت تر است .با کمک EntityFramwork فاصله ای که بین برنامه نویسی شی گرا و پایگاه داده رابطه ای وجود دارد به نحو مناسبی پر می شود. EntityFramwork جداول شما و ارتباطات بین آنها را به اشیایی در داخل برنامه نگاشت می کند .از این به بعد شما لازم نیست با دیتابیس کار کنید بلکه با اشیا کار خواهید کرد.
برای اینکه توسط EntityFramwork دیتابیس خود را به عنوان مدل به برنامه اضافه کنیم چند روش وجود دارد
Database First : در این روش ، مدل ما از روی یک دیتابیس آماده ساخته می شود .
Model First : مدل توسط برنامه نویس در داخل محیط Entity Data Model Designer نوشته می شود و سپس بانک از روی همین مدل ساخته می شود . نوشتن یک سری کلاس ها و بعد مشخص کردن ارتباط بین آنها ، کل بانک ساخته خواهد شد
Code First :با نوشتن یک سری کلاس ها و بعد مشخص کردن ارتباط بین آنها ، کل بانک ساخته خواهد شد. یعنی در محیط ویژوال کلاس ها و روابط بین آن ها مشخص شده و سپس بانک ساخته می شود .
در این مقاله قصد داریم که روش Database First را به صورت مرحله به مرحله آموزش دهیم .
ابتدا دیتابیس خود را ایجاد کنید .در شکل زیر نمای دیتابیس به همراه فیلد ها و نوع هر فیلد آورده شده است .
اسکریپت این دیتابیس در زیر آورده شده است
CREATE TABLE [dbo].[Rolls]( [RoleId] [int] NOT NULL, [Rolename] [nvarchar](150) NOT NULL, [Roletitle] [nvarchar](150) NOT NULL, CONSTRAINT [PK_Rolls] PRIMARY KEY CLUSTERED ( [RoleId] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO /****** Object: Table [dbo].[Users] Script Date: 01/01/2016 23:58:49 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[Users]( [User_id] [int] NOT NULL, [Username] [nvarchar](150) NOT NULL, [password] [nvarchar](150) NOT NULL, [Roll_id] [int] NOT NULL, [Email] [nvarchar](150) NOT NULL, [Activecode] [varchar](50) NOT NULL, [isActive] [bit] NOT NULL, CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED ( [User_id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO /****** Object: ForeignKey [FK_Users_Users] Script Date: 01/01/2016 23:58:49 ******/ ALTER TABLE [dbo].[Users] WITH CHECK ADD CONSTRAINT [FK_Users_Users] FOREIGN KEY([Roll_id]) REFERENCES [dbo].[Rolls] ([RoleId]) GO ALTER TABLE [dbo].[Users] CHECK CONSTRAINT [FK_Users_Users] GO
بعد از این کار ابتدا یک پروژه MVC ایجاد کنید .
در پنجره ای که باز می شود نوع پروژه خود را تعیین کنید .می توانید نوع آن را Empty قرار دهید و سپس در پایین گزینه mvc را تیک کنید و یا اینکه نوع آنرا mvc انتخاب کنید ، به هر حال فرقی نخواهد کرد (اگر نوع پروژه خود را mvc قرار دهید یک سری کلاس ها و کنترلر های آماده برای شما در نظر میگیرد)
بعد از ساخت پروژه نوبت به افزودن مدل به آن است .برای این کار مسیر زیر را دنبال کنید .
به مدل خود نام بدهید
در پنجره بعدی که باز می شود بر روی Entity Framework DataBase First کلیک کنید .
در پنجره بعدی بر روی گزینه New Connection کلیک کنید و مسیر دیتابیسی که ایجاد کرده بودید را بدهید.
حال برای اینکه رشته اتصال در داخل برنامه و در Web.config ذخیره شود گزینه Save Connection String را تیک کنید.
در پنجره ای که باز می شود جداول و یا View و Stored Procedure هایی که می خواهید به برنامه منتقل کنید را تیک بزنید
حال اگر به قسمت Solution برنامه نگاه کنید شکل زیر را خواهید دید
تا به اینجا به کمک روش DataBase First مدلی را به برنامه اضافه کرده ایم .برای استفاده از این مدل یک کنترلر جدید ایجاد می کنیم .برای ساخت این کنترلر مسیر زیر را دنبال کنید
حال از شما نوع کنترلری که قصد ساخت آن را دارید پرسیده می شود
بعد از انتخاب نوع کنترلر باید به آن مدل بدهید
بعد از Build کردن پروژه خواهید دید که در داخل پوشه View یک پوشه ای هم نام با کنترلر ایجاد شده است .در داخل این پوشه تمامی View های مربوط به حذف ، ایجاد ، به روزرسانی وجود دارند .اگر پروژه را اجرا کنید شکل زیر را خواهید دید
اگر در هنگام اجرای برنامه به خطا برخوردید بر روی خطا دو بار کلیک کنید تا به محل خطا برود ، در داخل model1.cs یک نوشته یک خطی وجود دارد آن را پاک کنید و پس از build کردن اجرا کنید
- ASP.net MVC
- 5k بازدید
- 6 تشکر