PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : آموزش entity framework 6 code first - مقدمه



toltek
December 19th, 2016, 14:13
http://www.vaniait.com/Upload/ArticleImages/3b0a766ffc634a9e892d4cd600f35e09.jpg



لینک مقاله : http://www.vaniait.com/Articles/entity-framework-training-mvc-net-introduction-65 (http://www.vaniait.com/Articles/entity-framework-training-mvc-net-introduction-65)

در این مباحث شما را با مفاهیم پایه ای Entity Framework آشنا خواهم کرد و همزمان نیز پروژه ای را شروع و به پایان می رسانیم. این نوشتارها و آموزش ها بر اساس دو کتاب زیر می باشد :


همانگونه که در کتاب آموزش قبلی یعنی «شروع کار با MVC 5 (http://www.farjadp.com/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-asp-net-mvc-5-%d8%a8%d9%87-%d8%b2%d8%a8%d8%a7%d9%86-%d8%b3%d8%a7%d8%af%d9%87/)» قول داده بودم ، آموزش Entity Framework 6 Code First به کمک MVC.Net را به مرور در سایت شرکت طراحی وبسایت وانیا قرار خواهم داد. در این مباحث شما را با مفاهیم پایه ای Entity Framework آشنا خواهم کرد و همزمان نیز پروژه ای را شروع و به پایان می رسانیم. این نوشتارها و آموزش ها بر اساس دو کتاب زیر می باشد :



کتاب Getting Started with Entity Framework 6 Code First using MVC 5 انتشارات Microsoft Technology
کتاب Programming Entity Framework Code First انتشارات O'REILLY



دوستانی که برای بار اول است با نوشتارهای بنده روبرو می شوند باید عرض کنم که بنده (مرتضی پورمحمد) این کتاب ها را به زبان محاوره ای ترجمه و تجربیات شخصی را نیز در آنها دخلی می کنم و برخلاف دیگر دوستان مترجم و دانشمند! تنها به ترجمه ی صِرف بسنده نمی کنم. پس اگر جایی از نوشتارهایم برخلاف گفته ها و یا فصول کتاب/ها است، به همین علت می باشد.
و اما پروژه ای که در این مسیر با کمک شما آن را به نتیجه می رسانیم «دانشگاه آموزشی وانیا» می باشد که در کتاب Getting Started with Entity Framework 6 Code First using MVC 5 تحت عنوان « Contoso University » معرفی شده است. پروژه ی فوق را توسط تکنولوژی های زیر پیگیری خواهیم کرد



Visual Studio 2014 Update 4
Net 4.5
Entity Framework 6 (EntityFramework 6.1.3 NuGet (https://www.nuget.org/packages/EntityFramework) package)



همچنین پیشنهاد می کنم قبل از شروع این مباحث ، آشنایی اندکی با مباحث زیر داشته باشید



HTML / CSS / JQuery
C#
MVC.Net 5



در صورت داشتن هرگونه سوال و یا نظر نیز می توانید از طریق راه های ارتباطی زیر در تماس باشید:

تلفن شرکت : ۰۲۱۶۶۳۵۹۸۹۸
تلفن همراه : ۰۹۱۲۲۸۳۰۷۹۵
پست الکترونیک : manager [at] vaniait [dot] com
کامنت زیر هر مقاله



و اما شروع. برای شروع باید به ادبیات مشترکی با یکدیگر برسیم تا زبان همدیگر را بهتر بفهمیم.

ORM چیست ؟


قبل از این که بخواهیم باEntity Frameworkآشنا شویم، بهتر است مفهومORMرا بدانیم.ORMیا Object Relational Mappingابزاری است که به وسیله آن می توان جداول پایگاه داده را پردازش کرد و آنها را به فرمت شیءنگاشت کرد که در کدنویسی خواناتر باشند. در کدنویسی به جای این که به صورت مستقیم با جداول پایگاه داده کار کنیم بر روی اشیاء کار می کنیم. به این اشیاء موجودیت یا Entity گفته می شود.


Entity Framework چیست ؟

Entity Framework درواقع یکی از قدرتمندترین ORM های دسترسی به منابع داده است. به وسیله Entity Framework شما می توانید با انواع مختلف دیتابیس از قبیل SQL Server ، Sqlite و … کار کنید بدون اینکه نیاز به عملیات مستقیم در دیتابیس داشته باشید. این تکنولوژی چند ویژگی مهم دارد که توجه اکثر برنامه نویسان را به خود جلب کرده است.



کار کردن با Entity Framework بسیار ساده است.حتی یادگیری آن ده ها برابر ساده تر از مدل های مشابه مانند ADO.NET است.
سرعت در دسترسی به داده ها و اجرای دستورالعمل ها بسیار بالاست و در پروژه های بزرگ نیز می توان از آن استفاده کرد.
پیاده سازی آن بسیار سریع است و در زمان صرفه جویی می شود.
دیتابیس شما در قالب کلاس های شی گرا با سایر اجزای پروژه یکپارچه می شود و علاوه بر خوانایی بالا در کدنویسی، عملیات ارتقا و بروزرسانی نرم افزاری را سرعت می بخشد و از بروز خیلی از خطاها جلوگیری می کند.
در برخی از حالت ها شما نیاز به طراحی پایگاه داده ندارید! زیرا با استفاده از امکانات EF خود برنامه دیتابیس را از روی مدل یا کلاس های شما می سازد.



انواع دیتامدل در Entity Framework
در کتاب قبلی کمی درباره ی این مدل ها توضیح داده و قول داده بودم که در این کتاب مفصل در خصوص هر کدام صحبت کنم . چون مقاله ی حاضر مقدمه می باشد ، هر کدام را در فصل های مربوط به خود مفصل به بحث و بررسی خواهیم پرداخت. اما این مدل ها کدامند :


Database First Modeling : در این روش مدل ما از روی یک پایگاه داده موجود ایجاد می شود و می توان از طریق Entity Data Model Designer در Visual Studio تغییرات لازم را بر روی مدل انجام داد.
Model First Modeling : در این روش ابتدا مدل توسط برنامه نویس در محیط Entity Data Model Designer ایجاد میشود، سپس بطور خودکار پایگاه داده و کدها و اسکریپ های موردنیاز از روی مدل ساخته میشوند.
Code First Modeling: در این روش کلاس های معادل موجودیت ها (جداول) توسط برنامه نویس نوشته میشوند (این کلاس ها POCO-Plain OLD CLR Objects نامیده میشوند) سپس EF بطور خودکار پایگاه داده و مدل را از روی این کلاس ها میسازد. ما در مقالات حاضر با این نوع بیشتر آشنا شده و پروژه ی حاضر نیز تحت همین مدل سپری خواهد شد



مزایای استفاده از Entity Framework چیست ؟


سطح یادگیری ساده: کار با EF به نسبت بقیه ORMها تقریبا ساده تراست.
پشتیبانی از پایگاه داده های مختلف در نسخه ۴ به بعد (در حال حاضر نسخه ۶٫۲ وجود دارد).
توسعه فعال: Microsoft، قصد جدی در توسعه این قابلیت دارد. اضافه شدن امکانات زیاد به نسخه ۴ به بعد نشاندهنده همین مطلب هست. مثل امکان Code First، Lazy Loading و …که در نسخه ۴ به EF اضافه شده اند.
توسعه دهندگان قادرند تا با ساختار شیء گرایانه سازگار با انواع سیستم های مدیریت داده کار کنند.
پشتیبانی کامل از Linq.
نصب خودکار با Visual Studio.
مرتبط شدن چندین مدل مفهومی به یک ساختارپایگاه داده.
برنامه های کاربردی قادر خواهند بود تا در مدل مفهومی خود (conceptual model) محوریت بیشتری به خود برنامه ببخشند به گونه ای که شیء گرایی، ارث بری، گونه ها (Type) های پیچیده تر و روابط بین جداول و اشیاء بهتر پیاده سازی شوند.
برنامه نویس ها از کدنویسی زیادی پیچیده رها می شوند.
بدون کوچک ترین تغییر کد برنامه خواهیم توانست مدل ارتباط بین ساختار پایگاه داده و مدل مفهومی را تغییر دهیم.


چه زمانی از EF استفاده می کنیم؟



زمانی که بخواهیم برنامه ما به پایگاه داده های دیگری به جز Microsoft SQL Serverنیز دسترسی پیدا کند.
زمانی که بخواهیم domain models برای برنامه مان تعریف کنیم و از آن به عنوان لایه persistenceاستفاده نماییم.
زمانی که از یک راهکار ORMی استفاده کنیم که ممکن است کلاسهایمان رابط های ۱:۱ با پایگاه داده داشته باشد یا ممکن است ساختاری بسیار متفاوت و پیچیده در ارتباط با پایگاه داده دارا باشد.
زمانی که میخواهیم از یک ORM استفاده کنیم که ساختارهای سلسله مراتبی در آن، معادل های پایگاه داده ای متفاوتی داشته باشد. مانند وقتی که جدولی جهت نگهداری سلسله مراتب، جداولی برای هر یک ازکلاسها وجدولی جهت نگهداری گونه ای (Type) خاص داریم.
زمانی که وقتی میخواهیم از LINQ جهت نوشتن Queryها استفاده کنیم درحالیکه Queryدرپایگاه داده به شیوه خاص و درسلطه سازنده آن عمل میکند.
زمانی که استفاده از کلاسهایی که خودمان نوشتیم، درکنار کلاسهای تولیدشده توسط سیستم یا ارث بری ازکلاسهای پایه یا پیادهسازی رابطها درکلاسها.
زمانی که استفاده از یک ORM با حفظ کارآیی و امکان بهبود آن از طریقStored Procedureها و Queryهای کامپایل شده.



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


/ پایان مقدمه /


لینک مقاله : http://www.vaniait.com/Articles/entity-framework-training-mvc-net-introduction-65 (http://www.vaniait.com/Articles/entity-framework-training-mvc-net-introduction-65)