سلامی به شما کاربران عزیز که در این روزها ما راهمراهی میکنید امیدوارم که حال شما خوب باشه و رضایت خاطر از اموزشهای ما داشته باشید اموزش امروزما در مورد کار با Database First با تکنولوژی EF6 در MVC5 است

شروع کار با شاخه ی Database First از تکنولوژی EF6 در یک برنامه ی تحت وب MVC5

با بهره گیری از الگوی طراحی MVC، تکنولوژی EF و قابلیت Scaffolding می توانید یک برنامه ی تحت وب ایجاد کنید که interface (رابطی) به پایگاه داده ی از پیش موجود فراهم می کند. این سری آموزشی به شما می آموزد چگونه به صورت اتوماتیک کدی ایجاد کنید که به کاربر امکان می دهد داده های موجود در جدول پایگاه داده را نمایش دهد، ویرایش نماید، ایجاد کند و در صورت لزوم آن ها را حذف کند. کد ایجاد شده به ستون های موجود در جدول پایگاه داده مربوط می باشد.

در این مبحث یک پایگاه داده ایجاد کرده و آن را با داده پر می کنیم.

مقدمه

این مبحث نحوه ی شروع کار با یک پایگاه داده ی از پیش آماده و ایجاد سریع یک برنامه ی تحت وب که به کاربران اجازه می دهد با داده ها تعامل داشته باشد را به شما نمایش می دهد. در این درس برای ساخت برنامه ی تحت وب از EF 6 و MVC 5 استفاده می شود. امکان Scaffolding چارچوب نرم افزاری تحت وب ASP.NET به شما اجازه می دهد به صورت خودکار کدی برای نمایش، بروز رسانی، ایجاد و حذف داده ها ایجاد کنید.

این مبحث سناریویی را درنظر می گیرد که در آن شما پایگاه داده ی خود را آماده دارید و فقط می خواهید کدهای لازم برای برنامه ی تحت وب را بر اساس فیلدهای آن پایگاه داده بنویسید. این روش برنامه نویسی را Database First development می نامند. اگر از قبل پایگاه داده را آماده در دست ندارید، می توانید از روش Code First استفاده نمایید که در آن کلاس های داده را تعریف کرده، سپس پایگاه داده را بر اساس فیلدهای آن (class property ها) ایجاد می کنیم.

تنظیم و راه اندازی پایگاه داده

جهت شبیه سازی حالتی که در آن پایگاه داده از پیش موجود می باشد، می بایست ابتدا یک پایگاه داده به همراه تعدادی داده که قبلا پایگاه داده با آن ها پر شده ایجاد کنید، سپس برنامه ی تحت وب خود را می نویسیم که به پایگاه داده ی مذکور وصل می شود.

این آموزش با استفاده از LocalDB و محیط Visual Studio 2013 یا Visual Studio Express 2013 برای وب نوشته شده است. می توانید از یک database server موجود بجای  LocalDBاستفاده کنید، ولی بسته به نسخه ی Visual Studio و نوع پایگاه داده خود، ممکن است برخی از data tool ها (ابزار داده) پشتیبانی نشوند. چنانچه ابزار لازم برای پایگاه داده ی مورد نظر در دسترس نباشد، در آن صورت بایستی گام ها و مرحله های مخصوص پایگاه داده را در مجموعه نرم افزازی مدیریتی (management suite) برای پایگاه داده ی خود پیاده کنید.

اگر با database tools در نسخه ی جاری Visual Studio خود مشکل دارید، در آن صورت باید بررسی کنید آیا ورژن نصب شده ی ابزار ذکر شده جدیدترین نسخه ی آن است یا خیر.

Visual Studio را راه اندازی کرده و یک پروژه ی SQL Server Database Project ایجاد کنید. پروژه را ContosoUniversityData نام گذاری کنید.

MVC آموزش

اکنون یک پروژه پایگاه داده ی خالی آماده دارید. انتخاب platform (محیط) مقصد، در اصل پایگاه داده ی شما را مستقر یا نصب نمی کند، تنها بدین معنا است که پروژه ی پایگاه داده اطمینان حاصل می کند که database design (طراحی پایگاه داده) با platform مقصد همخوانی دارد. جهت انتخاب platform مقصد، Properties را برای پروژه ی مورد نظر باز کرده و از آنجا محیط مد نظرتان را انتخاب نمایید.

MVC آموزش

می توانید جداول مورد نیاز در این آموزش را با افزودن Script های SQL ای که جداول را تعریف می کنند، انجام دهید. روی پروژه راست کلیک کرده و یک آیتم جدید انتخاب کنید.

MVC آموزش

یک جدول جدید به نام Student اضافه کنید.

MVC آموزش

در فایل مربوط به جدول، دستور T-SQL را با کد زیر جایگزین کرده تا جدول مورد نظر ایجاد گردد.

CREATE TABLE [dbo].[Student] (

[StudentID]      INT           IDENTITY (1, 1) NOT NULL,

[LastName]       NVARCHAR (50) NULL,

[FirstName]      NVARCHAR (50) NULL,

[EnrollmentDate] DATETIME      NULL,

PRIMARY KEY CLUSTERED ([StudentID] ASC)

)

همان طور که مشاهده می کنید، پنجره ی Design به صورت خودکار با کد مورد نظر همگام می شود. می توانید با کد یا designer کار کنید.

MVC آموزش

حال یک جدول دیگر اضافه کنید. این بار آن را Course نام گذاری کرده و دستور T-SQL زیر را استفاده کنید.

CREATE TABLE [dbo].[Course] (

[CourseID] INT           IDENTITY (1, 1) NOT NULL,

[Title]    NVARCHAR (50) NULL,

[Credits]  INT           NULL,

PRIMARY KEY CLUSTERED ([CourseID] ASC)

)

سپس این کار را بار دیگر انجام دهید و جدولی به نام Enrollment ایجاد کنید.

CREATE TABLE [dbo].[Enrollment] (

[EnrollmentID] INT IDENTITY (1, 1) NOT NULL,

[Grade]        DECIMAL(3, 2) NULL,

[CourseID]     INT NOT NULL,

[StudentID]    INT NOT NULL,

PRIMARY KEY CLUSTERED ([EnrollmentID] ASC),

CONSTRAINT [FK_dbo.Enrollment_dbo.Course_CourseID] FOREIGN KEY ([CourseID])

REFERENCES [dbo].[Course] ([CourseID]) ON DELETE CASCADE,

CONSTRAINT [FK_dbo.Enrollment_dbo.Student_StudentID] FOREIGN KEY ([StudentID])

REFERENCES [dbo].[Student] ([StudentID]) ON DELETE CASCADE

)

می توانید پایگاه داده ی خود را با استفاده از script ای که پس از نصب (deployment) دیتابیس اجرا می  شود، با داده پر (populate) کنید. یک Post-Deployment Script به پروژه ی خود اضافه کنید. می توانید از اسم پیش فرض برای آن استفاده کنید.

MVC آموزش

کد T-SQL زیر را به post-deployment script اضافه کنید. کار این اسکریپت صرفا این است که داده هایی را، هنگامی که هیچ سطر یا رکورد منطبقی یافت نشد، به پایگاه داده اضافه می کند. اسکریپت ذکر شده هیچ داده ای که ممکن است قبل در پایگاه داده وارد کرده باشید را بازنویسی یا حذف نمی کند.

MERGE INTO Course AS Target

USING (VALUES

(۱, ‘Economics’, 3),

(۲, ‘Literature’, 3),

(۳, ‘Chemistry’, 4)

)

AS Source (CourseID, Title, Credits)

ON Target.CourseID = Source.CourseID

WHEN NOT MATCHED BY TARGET THEN

INSERT (Title, Credits)

VALUES (Title, Credits);

MERGE INTO Student AS Target

USING (VALUES

(۱, ‘Tibbetts’, ‘Donnie’, ‘2013-09-01’),

(۲, ‘Guzman’, ‘Liza’, ‘2012-01-13’),

(۳, ‘Catlett’, ‘Phil’, ‘2011-09-03’)

)

AS Source (StudentID, LastName, FirstName, EnrollmentDate)

ON Target.StudentID = Source.StudentID

WHEN NOT MATCHED BY TARGET THEN

INSERT (LastName, FirstName, EnrollmentDate)

VALUES (LastName, FirstName, EnrollmentDate);

MERGE INTO Enrollment AS Target

USING (VALUES

(۱, ۲٫۰۰, ۱, ۱),

(۲, ۳٫۵۰, ۱, ۲),

(۳, ۴٫۰۰, ۲, ۳),

(۴, ۱٫۸۰, ۲, ۱),

(۵, ۳٫۲۰, ۳, ۱),

(۶, ۴٫۰۰, ۳, ۲)

)

AS Source (EnrollmentID, Grade, CourseID, StudentID)

ON Target.EnrollmentID = Source.EnrollmentID

WHEN NOT MATCHED BY TARGET THEN

INSERT (Grade, CourseID, StudentID)

VALUES (Grade, CourseID, StudentID);

return View();

}

}

}

لازم به ذکر است که post-deployment script هربار که پروژه ی خود را نصب می کنید، اجرا می شود. بنابراین، بایستی قبل از بکاربردن این اسکریپت دقیقا بررسی کنید و ببینید به چه چیزهایی نیاز دارید. در برخی موارد، شاید لازم باشد هربار که پروژه نصب می شود، کار خود را مجددا و از یک مجموعه ی مشخص داده آغاز کنید. در دیگر مواقع، شاید لزومی به اصلاح یا دستکاری داده های موجود نباشد. به عبارت دیگر، می بایست با توجه به نیاز خود تصمیم بگیرید که post-deployment script را بکار ببرید یا اینکه چه چیزهایی را در script خود بگنجانید.

هم اکنون چهار فایل اسکریپت SQL دارید  ولی هیچ جدولی هنوز ایجاد نکرده اید. پروژه آماده ی نصب بر روی localdb می باشد. در محیط Visual Studio، بر روی دکمه ی Start کلیک کرده (یا دکمه ی F5 فشار دهید) تا پروژه ی پایگاه داده کامپایل (Build) و نصب کنید. تب Output را بررسی کرده تا از موفقیت پروسه ی Build و Deployment مطمئن شوید.

MVC آموزش

برای اینکه مطمئن شوید پایگاه داده جدید ایجاد شده، پنجره ی SQL Server Object Explorer را باز کرده و اسم پروژه ی مورد نظر را در local database server مورد نظر جستجو کنید (در این مورد (localdb)\ProjectsV12).

MVC آموزش

برای اینکه مطمئن شوید جدول مورد نظر با داده پر شده، روی جدول راست کلیک کرده و View Data را انتخاب نمایید.

MVC آموزش

خواهید دید که یک view قابل ویرایش از جدول داده نمایش داده می شود.

MVC آموزش

هم اکنون یک پایگاه داده تنظیم شده دارید که با داده پر شده است. در مبحث آموزشی بعد یک برنامه ی تحت وب برای این پایگاه داده خواهید نوشت.

از اینکه وقتتون رو هم در اختیار ما قرار دادید از شما ممنونیم ..