
یادگیری سی شارپ از مفاهیم پایه تا پروژه محور: شیگرایی، کار با SQL و LINQ، ORMها (Entity Framework)، ساخت پروژه مدیریت رستوران با گزارشات حرفهای و امکانات کامل!
مشاهده بیشتر
یادگیری MVC Core از مبانی تا پیشرفته: شیگرایی، Routing، Entity Framework، امنیت، تست یونیت، Razor، Ajax، و پروژههای کاربردی! یک دوره کامل برای تسلط بر توسعه وب با ASP.NET Core. به صورت حضوری و آنلاین!
مشاهده بیشترمشخصات مقاله
آموزش کار با دیتابیس EF در mvc
آغاز با دیتابیس Entity Framework 6 با استفاده از MVC 5
با استفاده از MVC ،Entity Framework و ASP.NET Scaffolding می توانید یک برنامه ی وب ایجاد کنید که یک اینترفیس به دیتابیس موجود ارائه می دهد. این مجموعه آموزش به شما نشان می دهد که چگونه به طور خودکار کدی تولید کنید که کاربرها را قادر می سازد تا داده ای که در جدول دیتابیس موجود است نمایش دهند، ویرایش، ایجاد و یا حذف کنند. این کد تولید شده با ستون های جدول دیتابیس مطابقت دارد. در آخرین بخش آموزش سایت و دیتابیس را به Azure تنظیم می کنید.
این بخش از آموزش روی ایجاد یک دیتابیس و قرار دادن داده در آن تمرکز می کند. این مجموعه با معرفی Tom Dykstra و Rick Anderson نوشته شده است که براساس بازخورد کاربرها در بخش کامنت ها بهبود پیدا کرده است.
مقدمه
این موضوع نشان می دهد که چگونه با یک دیتابیس موجود آغاز کنید و فورا یک برنامه ی وب تولید کنید که کاربرها را قادر می سازد تا با داده در تماس باشند. این آموزش از Entity Framework 6 و MVC 5 برای ساخت برنامه ی وب استفاده می کند. ویژگی ASP.NET Scaffolding شما را قادر می سازد تا به طور خودکار کدی برای نمایش دادن، آپدیت، ایجاد و حذف داده تولید کنید. با استفاده از ابزار انتشار در داخل Visual Studio می توانید به سادگی سایت و دیتابیس را به Azure تنظیم کنید.
این موضوع موقعیتی را مورد توجه قرار می دهد که شما یک دیتابیس دارید و می خواهید کدی براساس فیلدهای آن دیتابیس برای یک برنامه ی وب تولید کنید. این دیدگاه توسعه ی Database First نامیده می شود. اگر شما یک دیتابیس موجود ندارید، می توانید در عوض از دیدگاهی به نام Code First استفاده کنید که شامل تعریف گروه های داده و تولید دیتابیس از پراپرتی های گروه می شود.
پیش نیازها
Visual Studio 2013 یا Visual Studio Express 2013 برای وب.
برقرارای دیتابیس
برای شبیه سازی محیطی دارای یک دیتابیس، ابتدا یک دیتابیس با فیلدهای مقدماتی داده ایجاد می کنید وسپس برنامه ی وب خود را ایجاد می کنید که به دیتابیس مرتبط است. این آموزش استفاده ی گسترده از LocalDB با Visual Studio 2013 یا Visual Studio Express برای وب می باشد. شما می توانید به جای LocalDB از یک سرور دیتابیس موجود استفاده کنید، اما بسته به ورژن Visual Studio و نوع دیتابیس شما، ممکن است تمام ابزار داده در Visual Studio پشتیبانی نشود. اگر ابزار برای دیتابیس شما در دسترس نمی باشند، ممکن است لازم باشد برخی مراحل خاص دیتابیس را در داخل مدیریت مناسب دیتابیس خود انجام دهید.
اگر با ابزار دیتابیس در ورژن Visual Studio خود مشکل داشتید، اطمینان حاصل کنید که آخرین ورژن ابزار دیتابیس را نصب کرده اید.
Visual Studio را آغاز کرده و یک SQL Server Database Project ایجاد کنید. پروژه را ContosoUniversityData نامگذاری کنید.
شما اکنون یک پروژه ی دیتابیس خالی دارید که بعدها در این آموزش آن را به Azure تنظیم می کنید. بنابراین لازم است Azure SQL Database را به عنوان سکوی هدف برای پروژه تنظیم کنید. در حقیقت تنظیم سکوی هدف با دیتابیس نیست. این فقط بدین معناست که پروژه ی دیتابیس تایید خواهد کرد که طراحی دیتابیس با سکوی هدف سازگار می باشد. برای تنظیم سکوی هدف، Properties را برای پروژه باز کرده و Microsoft Azure SQL Database را انتخاب کنید.
شما می توانید با اضافه کردن اسکریپت های SQL که جدول ها را تعریف می کنند، جدول های لازم برای این آموزش را ایجاد کنید. روی پروژه ی خود راست کلیک کرده و یک آیتم جدید اضافه کنید.
یک جدول جدید با نام Student اضافه کنید.
در فایل جدول، برای ایجاد جدول کد زیر را جایگزین فرمان 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) )
توجه داشته باشید که پنجره ی طراحی به طور خودکار با کد هماهنگ است. شما می توانید با کد یا با طراح کار کنید.
جدول دیگری ایجاد کنید، این بار آن را 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 )
شما می توانید از طریق یک اسکریپت که پس از تنظیم دیتابیس اجرا می شود، داده ها را در دیتابیس خود قرار دهید. یک اسکریپت Post-Deployment به پروژه اضافه کنید. شما می توانید از نام پیش فرض استفاده کنید.
کد اسکریپت زیر را به T-SQL بعد تنظیم شده اضافه کنید. این اسکریپت وقتی هیچ ثبت هماهنگی پیدا نشود، به سادگی به دیتابیس داده اضافه می کند. این اسکریپت هیچ کدام از داده هایی را که وارد دیتابیس کرده باشید، حذف یا بازنویسی نمی کند.
MERGE INTO Course AS Target USING (VALUES (1، 'Economics'، 3)، (2، 'Literature'، 3)، (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 (1، 'Tibbetts'، 'Donnie'، '2013-09-01')، (2، 'Guzman'، 'Liza'، '2012-01-13')، (3، '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 (1، 2.00، 1، 1)، (2، 3.50، 1، 2)، (3، 4.00، 2، 3)، (4، 1.80، 2، 1)، (5، 3.20، 3، 1)، (6، 4.00، 3، 2) ) 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);
توجه به این مسئله مهم است که اسکریپت post-deployment، هر زمان که دیتابیس پروژه ی خود را تنظیم کنید، اجرا می شود. بنابراین لازم است که در هنگام نگارش این اسکریپت به نیازهای خود دقت کنید. در برخی موارد ممکن است تمایل داشته باشید هر زمان که دیتابیس تنظیم می شود، با یک مجموعه ی شناخته شده از داده کار را شروع کنید. در موارد دیگر ممکن است بخواهید داده ی موجود به هیچ عنوان تغییر پیدا نکند. براساس نیازتان می توانید تصمیم بگیرید که آیا یک اسکریپت post-deployment نیاز دارید یا نه و همچنین در مورد آنچه می خواهید وارد اسکریپت کنید، تصمیم می گیرید. اکنون شما چهار فایل SQL دارید اما هیچ جدول حقیقی ندارید. شما آماده هستید تا پروژه ی دیتابیس خود را به db داخلی تنظیم کنید. در Visual Studio روی دکمه ی Start کلیک کنید (یا F5 را فشار دهید) تا پروژه ی دیتابیس خود را ساخته و تنظیم کنید. تب Output را برای تایید موفقیت در ساخت و تنظیم چک کنید.
برای اینکه دیتابیس تازه ایجاد شده را ببینید، SQL Server Object Explorer را باز کرده و نام پروژه در سرور دیتابیس داخلی درست جستجو کنید. (در این مورد (localdb)\ProjectsV12 می باشد.)
برای مشاهده ی داده های جای گرفته در جدول، روی یک جدول راست کلیک کنید و View Dataرا انتخاب کنید.
یک ویو قابل ویرایش از داده ی جدول ارائه می شود.
اکنون دیتابیس شما برقرار شده و داده ها در آن جای گرفته اند. در آموزش بعدی یک برنامه ی وب برای دیتابیس ایجاد خواهید کرد.