پیاده سازی روش Database First در MVC

جمعه 18 دی 1394

برای اینکه توسط Entity Framework به برنامه خود مدل اضافه کنیم چندین روش وجود دارد ، در این مقاله قصد داریم که روش Database First را به صورت مرحله به مرحله آموزش دهیم .

پیاده سازی روش Database First در MVC

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 کردن اجرا کنید

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید